PAT甲级-1015. Reversible Primes (20)
2018-03-06 10:57
281 查看
1015. Reversible Primes (20)
时间限制400 ms内存限制65536 kB
代码长度限制16000 B
判题程序Standard作者CHEN, Yue
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 -2Sample Output:
Yes YesNo
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define MAXN 1000010
int a[MAXN];
long long y=0;
typedef long long ll;
bool is_prime[MAXN];
bool is_prime_small[MAXN];
void segment_sieve()//素数打表
{
for(ll i=0; i*i<=MAXN; ++i)
is_prime_small[i]=true;
for(ll i=0; i<=MAXN; ++i)
is_prime[i]=true;
is_prime[0]=is_prime[1]=false;//0,1不是素数
for(ll i=2; i*i<=MAXN; ++i)
{
if(is_prime_small[i])
{
for(ll j=2*i; j*j<=MAXN; j+=i)
is_prime_small[j]=false;
for(ll j=max(2LL,(i-1)/i)*i; j<=MAXN; j+=i)
is_prime[j]=false;
}
}
}
void changeR(int x,int r)//逆置后转十进制判断是否素数
{
y=0;
int cnt=0;
while(x>0)
{
a[cnt++]=x%r;
x/=r;
}
int temp=1;
for(int i=cnt-1; i>=0; --i)
{
y+=(a[i]*temp);
temp*=r;
}
//cout<<y<<endl;
}
int main()
{
segment_sieve();
int x,r;
while(cin>>x)
{
if(x<0) break;
cin>>r;
memset(a,0,sizeof(a));
changeR(x,r);
if(is_prime[x]&&is_prime[y]) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
相关文章推荐
- PAT 甲级 1015. Reversible Primes (20)
- PAT甲级 1015. Reversible Primes (20)
- PAT(甲级)1015. Reversible Primes (20)
- PAT(甲级) 1015. Reversible Primes (20)
- PAT甲级1015. Reversible Primes (20)
- PAT - 甲级 - 1015. Reversible Primes (20)(素数)
- [PAT甲级]1015. Reversible Primes (20)(可逆素数判断)
- pat甲级1015. Reversible Primes (20)
- 浙江大学PAT_甲级_1015. Reversible Primes (20)
- 1015. Reversible Primes (20)-PAT甲级真题
- 【PAT甲级】1015. Reversible Primes (20)
- PAT(甲级) Colors in Mars (20)
- PAT 甲级 1046. Shortest Distance (20)
- 浙江大学PAT_甲级_1073. Scientific Notation (20)
- PAT_A 1015. Reversible Primes (20)
- 1096. Consecutive Factors (20) PAT甲级
- 1042. Shuffling Machine (20) PAT 甲级
- PAT甲级 1031. Hello World for U (20)
- PAT甲级1001. A+B Format (20)
- pat甲级1001. A+B Format (20)