1015. Reversible Primes

来源:互联网 发布:杭州的医疗大数据公司 编辑:程序博客网 时间:2024/06/05 21:12

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;}
0 0