1015 Reversible Primes (20分)

 

 应该是比较简单的吧...知识点有素数判断,进制转换。还有本题特别的输入和输出手法(while...!=EOF)

 

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 bool isPrime(int x){
 5     if(x<=1)
 6       return false;
 7     for(int i=2;i<x;i++)
 8         if(x%i==0)
 9            return false;    
10     return true;
11 }  
12 int main(){ 
13     int num,base,len=0;
14     int d[110];
15     while(scanf("%d%d",&num,&base)!=EOF){
16         if(num<0) break;
17         if(isPrime(num)){
18             len=0;
19             while(num!=0)
20             {d[len++]=num%base;
21              num=num/base;    
22             }
23             int sum=0,temp=1;
24             for(int i=len-1;i>=0;i--){
25                 sum=d[i]*temp+sum;
26                 temp=temp*base;
27             }
28             if(isPrime(sum))
29              printf("%s\n","Yes");
30             else
31              printf("%s\n","No");
32         }
33         else
34         printf("%s\n","No");
35     }
36     
37     return 0;
38 }

 

posted @ 2020-03-15 17:54  wsshub  阅读(89)  评论(0)    收藏  举报