一个素数,依次从高位开始去掉一位,两位......,所得的各数仍然是素数,称为超级素数。编程:求【100,999】之内第15个超级素数(注:1不是素数,2是素数,十位数不能为0)
#include<stdio.h>
#include<math.h>//用到了数学函数,所以要有这个头文件
int prime(int n)//自己定义的函数
{
int x;
for(x=2;x<=sqrt(n);x++)//sqrt表示开根号,数学中已经证实过
{
if(n%x==0)//不是素数
return 0;
}
return 1;
}
int main()//主函数
{
int i,count=0;
for(i=100;i<=999;i++)
{
if(prime(i)&&prime(i%100)&&prime(i%10)&&(i%10!=1)&&(i/10%10!=0))
count++;
if(count==15)
{
printf("%d",i);
break;
}
}
return 0;
}
提示:(1)在x<=sqrt(n)中,也可用x<n,但注意不能加上‘=’,只不过这样的运行速度要慢很多
(2)一般自定义函数先看主函数要求什么,再去分析其他
这里将if运用到了极致