用C语言编写自定义函数prime(int x),判断x是否为素数。

用C语言编写自定义函数prime(int x),判断x是否为素数。利用此函数编写程序分别找出1~5000内满足下列条件的数X。(1)x是素数(2)x的各个位数及x本身都是素数(3)x是素数,从个位开始去掉以为数字后,仍然是素数。如:233.

#include "stdio.h"
#include "math.h"//判断一个整数是否为素数
bool prime(int x)
{
int i;
for(i=2;i<= sqrt(x);i++)
{
if(x%i==0)
return false;
}
return true;
} //判断一个整数(1位或多位)是否每一位都是素数
bool allPrime(int a)
{
if(prime(a%10)) //如果个位是素数
{
a=a/10;
return allPrime(a);
}
else
return false;
}// 打印出1-5000内满足题意的素数
void printPrime()
{
int i;
int a=0;
for( i=11;i<5000;) // 1-9 不用再判断了,只有一位。10和5000很明显也不用去判断了,不是素数
{
if(prime(i)) // 如果i是素数,判断个位是不是素数,如果个位不是,不满足第二个条件
{
if(prime(i%10)) //判断个位
{
a=i/10 ; //a就是去掉个位后的数
if(prime(a)) //判断a 是否是素数,如果是,再判断a每一位是否是素数
{
if(allPrime(a))
printf("%d\n",&i);
} }
}
i+=2;
}
}int main()
{
printPrime();
}
温馨提示:答案为网友推荐,仅供参考