浙大PAT甲级-1015

来源:互联网 发布:数据库怎么加锁 编辑:程序博客网 时间:2024/05/24 05:05

prime:素数;

1不是素数也不是合数。

#include <iostream>#include <vector>using namespace std;int num;bool isPrime(int a){    if(a==1)        return false;    for(int i=2;i<a;i++)        if(a%i==0)            return false;    return true;}void change(int n, int d, vector<int> &x){    int cnt=0;    while(n>0){        x.push_back(n%d);        n/=d;        cnt++;    }    num=cnt;}int Back(int d,vector<int> &x){    int n=0, m=1;    for(int i=num-1;i>=0;i--){        n+=x[i]*m;        m*=d;    }    return n;}int main(){    int n,d, cnt=0;    vector<int> ans;    while(cin>>n){        if(n<0)            break;        cin>>d;        cnt++;        vector<int> x;        if(!isPrime(n)){            ans.push_back(0);            continue;        }        change(n,d,x);        if(!isPrime(Back(d,x))){            ans.push_back(0);            continue;        }        ans.push_back(1);    }    for(int i=0;i<cnt;i++)        if(ans[i]==1)            cout<<"Yes"<<endl;        else            cout<<"No"<<endl;    return 0;}

原创粉丝点击