1015. Reversible Primes (20)

来源:互联网 发布:男士面霜 知乎 编辑:程序博客网 时间:2024/05/29 05:01

1015. Reversible Primes (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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 1023 223 10-2
Sample Output:
YesYesNo

提交代码

题目给定一个数,问你该数是否是素数和将该数转化为给定的进制数,再反转后得到的数是否是素数。如果都是就输出Yes否则输出No

#include<stdio.h>#include<math.h>bool isprime(int n){if(n <= 1){return false;}for(int i = 2;i <= sqrt(n);i++){if(n%i == 0){return false;}}return true;}int main(){int n,radix;//freopen("input.txt","r",stdin);while(scanf("%d",&n)!=EOF){if(n < 0){break;}scanf("%d",&radix);if(!isprime(n)){printf("No\n");}else{int a[105];int len = 0;while(n != 0){a[len++] = n%radix;n /= radix;}for(int i = 0;i < len;i++){n = n*radix + a[i];}if(isprime(n)){printf("Yes\n");}else{printf("No\n");}}}return 0;}