PAT甲級-1015. Reversible Primes (20)
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 Yes
No
#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 甲級 1152 Google Recruitment (20分)GoUI
- 20年春季甲級pat考試
- 【PAT甲級A1084】Broken Keyboard (20分)(c++)C++
- PAT甲級1032 Sharing
- PAT甲級-1140. Look-and-say Sequence (20)(模擬)
- PAT甲級1030 Travel Plan
- 浙大PAT甲級考試
- PAT甲級1023 Have Fun with Number
- 【PAT甲級A1065】A+B and C (64bit) (20分)(c++)C++
- PAT(甲級)2020年秋季考試 7-1 Panda and PP Milk (20分)
- PAT甲級1126~1130|C++實現C++
- PAT甲級-1014. Waiting in Line (30)(模擬)AI
- PAT甲級真題1069 數字黑洞(巧妙解法)
- PAT甲級考試題庫題目分類
- 2024 秋季PAT認證甲級(題解A1-A4)
- 【PAT甲級A1038】Recover the Smallest Number (30分)(c++)C++
- PAT甲級1122 Hamiltonian Cycle (25分)|C++實現C++
- PAT甲級1154 Vertex Coloring (25分)|C++實現C++
- 2021.9.12週六PAT甲級考試覆盤與總結
- PAT甲級1110 Complete Binary Tree (25分)|C++實現C++
- 19年春季第二題 PAT甲級 1157 Anniversary(25 分)
- 菜鳥記錄:c語言實現PAT甲級1010--RadixC語言
- 2020年7月第2題 PAT甲級真題 The Judger (25分)
- (非原創)PAT甲級1123 Is It a Complete AVL Tree (30分)|C++實現C++
- PAT 乙級 1094 谷歌的招聘 (20分)---【素數 字串】谷歌字串
- 【PAT乙級、C++】1024 科學計數法 (20分)C++
- PAT 乙級
- 【PTA甲級、C++簡單解答】1001 A+B Format (20分)C++ORM
- PTA甲級——Be Unique
- PAT 1011 World Cup Betting (20分) 比較大小難度級別
- 2019年9月8日秋季PAT甲級題解-2-1161-Merging Linked Lists (25 分)
- PAT乙級1023
- PAT乙級1004 成績排名 (20分)(C語言版)及解析C語言
- 1021 Deepest Root(甲級)
- PAT:1001 A+B Format (20分)ORM
- 204. Count Primes
- 【PAT乙級】1027 列印沙漏
- 【PAT乙級】1017 A除以B