1015. Reversible Primes (20)
时间限制
400 ms
内存限制
32000 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
我好久没有看懂题目了。。这次也不例外。什么逻辑,N进制数出现了N+1?
- #include<iostream>
- #include<cstdio>
- #include<memory.h>
- #include<algorithm>
- #include<cstring>
- #include<queue>
- #include<cmath>
- #include<vector>
- #include<cstdlib>
- #include<cmath>
- #include<iomanip>
- #include<string>
- using namespace std;
- #define MAX 0x6fffffff
- bool isprime(int n){
- if(n==1)
- return false;
- int q = sqrt(n+0.0);
- for(int i=2;i<=q;++i){
- if(n%i==0)
- return false;
- }
- return true;
- }
- int reverse(int n, int radix){
- int ans = 0;
- while(n>0){
- ans = ans*radix + n%radix;
- n /= radix;
- }
- return ans;
- }
- int main(){
- //freopen("in.txt", "r", stdin);
- int n, d;
- while(cin>>n, n>=0){
- cin>>d;
- if(isprime(n) && isprime(reverse(n, d)))
- printf("Yes\n");
- else
- printf("No\n");
- }
- // fclose(stdin);
- return 0;
- }