1015. Reversible Primes (20)/YHF/2016.12.1

来源:互联网 发布:致命id人物解析知乎 编辑:程序博客网 时间:2024/06/05 19:31

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:
YesYes

No

#include<iostream>#include<string>#include<algorithm>#include<sstream>#include<queue>using namespace std;bool isprime(int a){if (a == 1)return false;if (a == 2)return true;if ( a%2==0)return false;for (int i = 3; i <= a / 2 + 1; i+=2) {if (a%i == 0)return false;}return true;}int main() {int temp0, temp1,temp2;vector<int> v1;vector<int>::iterator it;v1.clear();while (1) {cin >> temp0;temp2 = temp0;if (temp0 < 0)break;cin >> temp1;while (temp0 != 0) {v1.push_back(temp0%temp1);temp0 /= temp1;}int j = 0; for (it = v1.begin(); it != v1.end(); it++) { temp0 += (*it)*pow(temp1*1.0,v1.size()-j++ -1); } v1.clear(); if (isprime(temp0) && isprime(temp2)) cout << "Yes" << endl; else cout << "No" << endl;}}

感想:练手题,注意点是1不是素数,进制转换切记要熟悉

0 0