题目: 编写一个原型为 bool isAbsPrime(int n)的函数,用于判断一个数是否为绝对素数, 绝对素数是指一个素数,其反置数也为素数,如37为素数,73也为素数,则37,73都为绝对素数
注: 标准C库中没有bool类型,需要添加头文件 <stdbool.h>来使用bool类型,其返回值为 true 和false 相当于数字电路中的0/1;
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool isAbsPrime(int n)
{
int ge;
int shi;
int fan;
int i;
int cnt;
int val;
val=n;
ge=val%10;
shi=val/10;
fan=ge*10+shi;
printf("fan=%d\n",fan);
cnt=0;
for(i=2;i<val;i++)
{
if(val%i==0)
{
cnt++;
}
}
printf("cnt=%d\n",cnt);
for(i=2;i<fan;i++)
{
if(fan%i==0)
{
cnt++;
}
}
printf("cnt=%d\n",cnt);
if(cnt==0)
{
return true;
}
else
{
return false;
}
}
int main()
{
int val;
scanf("%d",&val);
if(isAbsPrime(val)==true)
{
printf("绝对素数\n");
}
else
{
printf("不是绝对素数\n");
}
return 0;
}
运行结果如下:
|