一道水题 但是脑回路有点清奇…把23变成2进制7…只拿12分
后来看正解才发现是先转换为2进制然后再反转后判断是否是素数…被自己秀了一脸…如果觉得题目不正常多半是英语学的不正常…
#include<bits/stdc++.h>
using namespace std;
bool is_prime(int n)
{
if(n < 2)
{
return false;
}
else if(n == 2)
{
return true;
}
else
{
for(int i = 2;i * i <= n;i++)
{
if(n % i == 0)
{
return false;
}
}
return true;
}
}
int convert_num(string str,int radix)
{
int res = 0;
for(int i = str.size() - 1;i>=0;i--)
{
res += pow(radix,(str.size() - 1 - i)) * (str[i] - '0');
}
return res;
}
int main(void)
{
freopen("pat0314/in.txt","r",stdin);
string n;
int radix;
while(cin>>n)
{
if(n[0] == '-')
{
return 0;
}
else
{
cin>>radix;
int res = convert_num(n,10);
int temp = res;
int z[100];
int num = 0;
int res2 = 0;
while(temp != 0)
{
z[num++] = temp % radix;
temp /= radix;
}
for(int j = 0;j<num;j++)
{
res2 += pow(radix,(num - j - 1)) * z[j];
}
// cout<<res<<" "<<res2<<endl;
if(is_prime(res) && is_prime(res2))
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
}
return 0;
}