程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 1015. Reversible Primes (20)

1015. Reversible Primes (20)

編輯:C++入門知識

1015. Reversible Primes (20)


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 22
3 10
-2
Sample Output:
Yes
Yes
No

#include 
#include 
#include 
using namespace std;

bool isPrime(int x) {
    if(x < 2) {
        return false;
    }
    if(x == 2 || x == 3) {
        return true;
    }
    for(int i=2; i*i<=x; i++) {
        if(x % i == 0) {
            return false;
        }
    }
    return true;
}

int main() {
    int n, d;
    while(cin>>n) {
        if(n < 0) {
            break;
        } else {
            cin>>d;
            if(isPrime(n)) {
                queue q;
                while(n!=0) {
                    q.push(n%d);
                    n /= d;
                }
                int reverse = 0;
                while(!q.empty()) {
                    reverse=reverse*d;
                    reverse=reverse+q.front();
                    q.pop();
                }
                if(isPrime(reverse)) {
                    cout<<"Yes"<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved