PAT-A-1015. Reversible Primes (20)

来源:互联网 发布:java教程pdf完整版 编辑:程序博客网 时间:2024/06/03 20:08

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
#include<iostream>#include<cstdio>#include<math.h>using namespace std;int Rever(int a, int n){  int ans = 0;  int d[50];  int len = 0;  do  {    d[len++] = a%n;    a = a / n;  } while (a != 0);  for (int i = 0; i < len; i++)  {    ans = ans*n + d[i];  }  return ans;}int isprime(int n){  if (n <= 1)    return 0;  int s = (int)sqrt(1.0*n);  for (int i = 2; i <= s; i++)  {    if (n%i == 0)      return 0;  }  return 1;}int main(){  int a;  while (cin >> a&&a>0)  {    int n;    cin >> n;    if (isprime(a))    {      int num2 = Rever(a, n);      if (isprime(num2))        cout << "Yes" << endl;      else        cout << "No" << endl;    }    else      cout << "No" << endl;  }  system("pause");  return 0;}

0 0
原创粉丝点击