您的位置:首页 > 其它

PAT-A1015. Reversible Primes (20)

2016-03-06 21:41 330 查看
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;

int n, radix;

int reverse(int m)
{
int t[10], cnt = 0, a = 0;
while (m)
{
t[cnt++] = m%radix;
m /= radix;
}
for (int i = cnt-1; i >= 0; i--)
{
int p = pow(radix, cnt-1-i)+0.5;
a += t[i]*p;
}
return a;
}

int isPrime(int n)
{
if (n <= 1)
return 0;
else
{
int sqr = sqrt(1.0*n);
for (int i = 2; i <= sqr; i++)
{
if (n%i == 0)
return 0;
}
return 1;
}
}

int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
while (scanf("%d %d", &n, &radix) != EOF && n > 0)
{
int r = 0;
if (isPrime(n))
{
r = reverse(n);
if (isPrime(r))
printf("Yes\n");
else
printf("No\n");
}
else
printf("No\n");

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: