素数判断加反转数字。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <set>
using namespace std;
int reverseNumber(int N,int D){
int sum=0;
do{
sum=sum*D+N%D;
N/=D;
}while(N);
return sum;
}
bool isPrime(int N){
if(N<2)
return false;
int tmp=sqrt(N);
for(int i=2;i<=tmp;i++)
if(N%i==0)
return false;
return true;
}
int main(){
int N,D;
while(scanf("%d",&N)!=EOF && N>=0){
scanf("%d",&D);
if(isPrime(N) && isPrime(reverseNumber(N,D)))
printf("Yes\n");
else
printf("No\n");
}
return 0;
}