分值 : 20 难度 : 细节题 思路 : 简单的判断素数,问题是按照给定进制反转要注意。 坑点 : 判断素数 2是最小的素数,方便起见,< 2 return 0 ; 评语 : 细节题,理解题,读入的肯定是十进制,反转用给的进制转换。
123456789101112131415161718192021222324252627282930313233343536
#include <iostream>#include "math.h"using namespace std ;int is_prime(int value ){ if(value < 2 ) return 0 ; if(value == 2 ) return 1 ; for(int i = 2 ; i <=sqrt(value) ; i++) { if(value % i == 0) return 0 ; } return 1 ;}int main() { int N , D ; cin >> N ; while( N >=0 ) { cin >>D ; int temp=0 , temp2 = 0 ; temp = N ; while( temp != 0) { temp2 = temp2*D + (temp%D) ; temp /= D ; } if(is_prime(N) && is_prime(temp2)) cout<<"Yes"<<endl ; else cout <<"No"<<endl ; cin >> N ; }}