caution: 1 is not a prime
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <cstdio> int n,d,m; bool isprime(int k){ if(k==1) return false; for(int i=2;i*i<=k;i++) if(k%i==0) return false; return true; } int main(){ scanf("%d",&n); while(n>0){ scanf("%d",&d); if(isprime(n)){ for(m=0;n;n/=d) m=d*m+n%d; if(isprime(m)) printf("Yes\n"); else printf("No\n"); } else printf("No\n"); scanf("%d",&n); } return 0; } |