#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e5+100;
int prime[maxn];
bool p[maxn]= {0};
void find_prime()
{
// p[1]=1;
int cnt=0;
for(int i=2; i<maxn; i++)
{
if(p[i]==false)
{
prime[cnt++]=i;
for(int j=i+i; j<maxn; j+=i)
{
p[j]=true;
}
}
}
}
int q[maxn];
int main()
{
int n,d;
find_prime();
while(~scanf("%d",&n)&&n>0)
{
memset(q,0,sizeof(q));
scanf("%d",&d);
if(p[n]==1)
{
printf("No\n");
}
else
{
ll ans=0;
int cnt=0;
while(n)
{
q[cnt++]=n%d;
n/=d;
}
reverse(q,q+cnt);
for(int i=0;i<cnt;i++)
{
ans=ans+pow(d,i)*q[i];
}
if(p[ans]==0)
{
printf("Yes\n");
}
else
printf("No\n");
}
}
}
1015 Reversible Primes (20 分)
最新推荐文章于 2025-06-23 08:55:19 发布