您的位置:首页 > 其它

1015. Reversible Primes

2015-10-14 19:33 253 查看
Tips:

这题开始一直没太弄懂题目,以为给出的数是以d为底,相当于d进制(但各位可能比d大),然后转换成10进制,再倒置.结果只能过一个点.而且如果按照我的思路,第二个case应该是No才对.

最后只能搜搜其它人的答案了.原来是这样做的:先把给出的十进制数转换成d进制,然后这个d进制再逆置,再转换成十进制,再判断.

最后借鉴了某位浙大大神的blog,其中的转置处理写的很nice.

#include <stdio.h>

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

int numReserve(int n,int d){
int sum = 0;
while(n > 0){
sum = sum * d + n % d;
n /= d;
}
return sum;
}

int main(){
int n,d;
while(scanf("%d",&n)){
if(n < 0)
break;
scanf("%d",&d);
if(isPrime(n) && isPrime(numReserve(n,d)))
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: