PAT甲级 1015 Reversible Primes 进制转化+反转+判断素数

PAT甲级 1015 Reversible Primes 进制转化+反转+判断素数

代码如下:

//数的反转、判断素数、进制间的转化
#include<iostream>
#include<stdio.h>
using namespace std;

int num[100];//记录转化为radex进制数每位的数组

bool isprime(int x){//判断素数
  if(x==1){
    return false;
  }
  for(int i=2;i*i<=x;i++){
    if(x%i==0){
        return false;
    }
  }
  return true;
}

int main(){
  int n,radix;
  while(true){
    cin>>n;
    if(n<0){
        return 0;
    }
    cin>>radix;
    for(int i=0;i<100;i++){
        num[i]=0;
    }
    int sum;//sum为n反转后的十进制数
    int r;//r为余数
    int k=0;
    int n1=n;
    while(n!=0){
        r=n%radix;
        num[k++]=r;
        n/=radix;
    }
    int ans=1;
    sum=0;
    for(int i=k-1;i>=0;i--,ans=ans*radix){
        sum+=num[i]*ans;
    }
    if(isprime(n1)&&isprime(sum)){
            cout<<"Yes"<<endl;
            continue;
    }
    cout<<"No"<<endl;
  }
  return 0;
}
上一篇:1015 Reversible Primes


下一篇:PAT 1015 Reversible Primes