1015 Reversible Primes (20 分)

#include <iostream>
#include <cmath>
#include<vector>
using namespace std;
vector<int>v;
bool isprime(int n)
{
      if(n<=1)
              return false;
      for(int i=2;i*i<=n;++i)
      {
          if(n%i==0)
          {
              return false;
          }


      }
      return true;

}
int re(int n,int d)//转化成进制数
{
       if(n==0)
              return 0;
   while(n>0)//转化成d进制  并且已经反转了
   {
      v.push_back(n%d);
      n/=d;
   }
   int sum=0;
   int cnt=0;
   for(int i=v.size()-1;i>=0;--i)   //还原成10进制
   {
        sum+=pow(d,cnt)*v[i];
        cnt++;
   }
   return sum;

}
int main()
{
    int n,d;
   while(cin>>n)
    {
          if(n<0)
              break;
         cin>>d;
         v.clear();
         if(isprime(n)==true&&isprime(re(n,d))==true)
         {
               cout<<"Yes"<<endl;
         }
         else
              cout<<"No"<<endl;


    }
    return 0;
}

题目意思

给一个10进制数和一个基数

如果10进制数是素数并且 这个10进制转化成基数制之后反转过来得到的10进制数也是素数  那么yes 否则 no

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值