PAT1015

来源:互联网 发布:手机端怎么找淘宝客服 编辑:程序博客网 时间:2024/06/09 14:44

http://www.patest.cn/contests/pat-a-practise/1015
思路:用数组存储转化进制以后的各位,既可以避免溢出,也方便”反转“。

#include <iostream>#include <cmath>using namespace std;bool is_prime(int num){    if(num<2){        return false;    }else{        for(int i=2;i<num;++i){            if(num%i==0){                return false;            }        }        return true;    }}int change_radix(int N,int D){    //将N转化为D进制反转后再转化为10进制返回    int a[100]={0};    int ret=0,digit=0;    while(N>0){        a[digit]=N%D;        ++digit;        N/=D;    }    for(int i=digit-1;i>=0;--i){        ret+=a[i]*pow(D,digit-i-1);    }    return ret;}int main(){    int N,D;    while(cin>>N){        if(N<0) break;        cin>>D;        if(is_prime(N)){            if(is_prime(change_radix(N,D))){                cout<<"Yes"<<endl;            }else{                cout<<"No"<<endl;            }        }else{            cout<<"No"<<endl;        }    }    return 0;} 
0 0