美文网首页
1015 Reversible Primes (20)

1015 Reversible Primes (20)

作者: 沙_狸 | 来源:发表于2018-08-11 00:11 被阅读0次

    题目信息

    A reversible prime in any number system is a prime whose "reverse" in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.
    Now given any two positive integers N (< 105) and D (1 < D <= 10), you are supposed to tell if N is a reversible prime with radix D.
    Input Specification:
    The input file consists of several test cases. Each case occupies a line which contains two integers N and D. The input is finished by a negative N.
    Output Specification:
    For each test case, print in one line "Yes" if N is a reversible prime with radix D, or "No" if not.
    Sample Input:
    73 10
    23 2
    23 10
    -2
    Sample Output:
    Yes
    Yes
    No

    心得

    又是刷PAT的一天,1014题还有一个测试点没通过。
    只有一个感慨:论头发是怎么没的......

    代码

    #include<cstdio>
    #include<cmath>
    #include<vector>
    bool isPrime(int n){
        if(n<=1) return false;
        int sqr=(int)sqrt(n*1.0);
        for(int i=2;i<=sqr;i++){
            if(n%i==0) return false;
        }
        return true;
    }
    using namespace std;
    int main(){
        int n=1,d;//n<100000&&d<=10
        scanf("%d",&n);
        while(n>=0){
            scanf("%d",&d);
            int before=n;
            int ver=0;
            vector<int> v;
            while(n>0){
                v.push_back(n%d);
                n/=d;
            }   
            for(int i=0;i<v.size();i++){
                ver*=d;ver+=v[i];
            }
            if(isPrime(before)&&isPrime(ver)) printf("Yes\n");
            else printf("No\n");
            scanf("%d",&n);
        }
        return 0;
    }
    

    测试结果

    image.png

    相关文章

      网友评论

          本文标题:1015 Reversible Primes (20)

          本文链接:https://www.haomeiwen.com/subject/hmdrbftx.html