pat甲级1015

1015 Reversible Primes (20 point(s))

原地址

思路:

  1. 模拟

我踩的坑点:

  1. 题意是在D进制下翻转后的数在10进制下是否是素数

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

using namespace std;
#define pb push_back
#define ll long long
const int maxn = 1e5+5;
const int INF = 1e9;
const double eps = 1e-6;

int isPrime[maxn];

void () {
fill(isPrime,isPrime+maxn,1);
isPrime[0] = isPrime[1] = 0;
for (int i = 2; i < maxn; ++i) {
if (isPrime[i]) {
for (int j = 2 * i; j < maxn; j += i)
isPrime[j] = 0;
}
}
}

int main() {
#ifdef ONLIGE_JUDGE
#else
freopen("H:\in.txt","r",stdin);
#endif
select();
int n,m,t,sum;
while(cin >> n >> m && n >= 0) {
string s;
t = n;
for (; t ; t /= m) {
s += to_string(t%m);
}
sum = 0;
for (int i = 0;i < s.size();++i)
sum = sum * m + (s[i] - '0');
printf("%sn", (isPrime[n] && isPrime[sum]) ? "Yes" : "No");
}
return 0;
}