根据无暇素数的概念:
一个两位整数 A 本身是素数,若将其个位数字与十位数字交换,得到一个新的两位数 B, 而 B 也是素数,我们则称 A 为无暇素数。
我们得出,无暇素数为两位数。
#include
#include
int sushu(const int *n);
int wanmei(const int *n);
int main(void)
{
for(int i = 11; i < 100; ++i)
if(sushu(&i) && wanmei(&i))
printf("%-4d", i);
putchar('\n');
return 0;
}
int sushu(const int *n) //判断是否为素数,使用指针加快程序速度;
{
int temp = sqrt(*n); //开方减少计算量(素数定理);
for(int i = 2; i <= temp; ++i)
if(*n % i == 0)
return 0;
return 1;
}
int wanmei(const int *n) //判断反过来是否为素数,使用指针加快程序速度;
{
int temp = *n / 10 + *n % 10 * 10;
if(sushu(&temp))
return 1;
else
return 0;
}
。