首先说明一下题意,就是输入一个数,然后判断它是不是素数,如果是,将它进行进制转换,转换后得到的数再次进行素数判断,如果是素数。就输出Yes,否则输出No
#include<cmath>
#include<cstdio>
bool
isPrime(int n
)
{
if(n
==1)
return false
;
for (int i
= 2; i
< n
; i
++)
if (n
% i
== 0 && i
< n
)
return false
;
return true
;
}
int d
[10000];
int main()
{
int n
, radix
;
while (scanf("%d",&n
) != EOF)
{
if (n
< 0)
break;
scanf("%d", &radix
);
if (isPrime(n
) == false
)
{
printf("No\n");
}
else
{
int len
= 0;
do
{
d
[len
++] = n
% radix
;
n
/= radix
;
} while (n
!= 0);
for (int i
= 0; i
< len
; i
++)
{
n
= n
* radix
+ d
[i
];
}
if (isPrime(n
) == true
)
printf("Yes\n");
else printf("No\n");
}
}
return 0;
}
转载请注明原文地址: https://win8.8miu.com/read-1449203.html