【PAT】1015 Reversible Primes (20) [prime][Binary conversion]

1015 Reversible Primes (20分)
进制参考

  • bool isPrime(int n)
  • while(cin >> n && n>=0)输入小于零结束
  • for (int i = 0; i < len; i++) n = n * d + arr[i];///化十进制
  • ①进制转换自己实现
int len = 0, arr[100];//进制转换
		do {
			arr[len++] = n % d;
			n = n / d;
		} while (n != 0);`

②现有函数

- char*itoa(int value,char*string,int radix);num是一个int型的,是要转化的10进制数,str是转化结果,后面的值为目标进制。

- sprintf()函数(可以将一个10进制数转换为指定格式的n进制字符串)

	char s[100]={0};
    sprintf(s, "%d", 123); //十进制输出产生"123"
    sprintf(s, "%4d%4d", 123, 4567); //指定宽度不足的左边补空格,产生:" 1234567"
    sprintf(s, "%8o", 123);    //八进制输出,宽度占8个位置
    sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
    sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
    int i = 100;
    sprintf(s, "%.2f", i);    //注意这是不对的
    sprintf(s, "%.2f", (double)i);    //要按照这种方式才行
  1. 输出进制
cout << "35的8进制:" << std::oct << 35<< endl;  
cout << "35的10进制" << std::dec << 35 << endl;  
cout << "35的16进制:" << std::hex << 35 << endl;  
cout << "35的2进制: " << bitset<8>(35) << endl;//<8>:表示保留8位输出
//#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

bool isPrime(int n)
{
	if (n == 0 || n == 1)return false;
	for (int i = 2; i*i <= n; i++)
		if (n%i == 0) return false;
	return true;
}

int main()
{
	//freopen("input.txt","r", stdin);
	int n=0, d;
	while(cin >> n && n>=0)
	{
		cin >> d;
		if (!isPrime(n)) {cout << "No"<<endl; continue;}
		
		int len = 0, arr[100];//进制转换
		do {
			arr[len++] = n % d;
			n = n / d;
		} while (n != 0);

		for (int i = 0; i < len; i++) n = n * d + arr[i];///化十进制

		if (isPrime(n))cout << "Yes"<<endl;
		else cout << "No" << endl;
	}
	return 0;
}
展开阅读全文

Windows版YOLOv4目标检测实战:训练自己的数据集

04-26
©️2020 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值