1015 Reversible Primes (20point(s)) Easy 需要二刷 *初始化问题
基本思想:
主要考察这几个方面:
1.初始化问题;
2.输入问题;
3.进制转换;
4.素数判定和素数表得问题;
关键点:
1.初始化问题一定要注意,bool数组并不能用直接初始化;
2.输入问题涉及到多点测试问题,详见多点测试输入总结;
3.进制转换,已经很熟了,没什么好说的;
4.素数详见素数得总结;
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<vector>
#include<string>
#include<math.h>
#include<algorithm>
#include<cstring>
using namespace std;
using std::vector;
const int maxn = 100200;
bool flag[maxn];
void init() {
flag[0]=flag[1] = false;
for (int i = 2; i < maxn; i++) {
if (flag[i]) {
for (int j = i + i; j < maxn; j += i)
flag[j] = false;
}
}
}
int trans(int n,int r) {
vector<int>vec;
while (n != 0) {
vec.push_back(n%r);
n /= r;
}
int cnt = 0;
for (int i = 0; i < vec.size(); i++) {
cnt = vec[i] + cnt * r;
}
return cnt;
}
int main() {
fill(flag, flag + maxn, true);
init();
int n, r;
while (1){
scanf("%d", &n);
if (n < 0)
break;
scanf("%d", &r);
// cout << flag[n] << endl;
if (flag[n]) {
if (flag[trans(n, r)])
cout << "Yes" << endl;
else {
cout << "No" << endl;
}
}
else {
cout << "No" << endl;
}
}
system("pause");
return 0;
}

浙公网安备 33010602011771号