题目及要求如下:
代码如下:
#include<stdio.h>
#include<math.h>
int judge(int n){//函数judge用来判断一个数是不是素数
int i,flag=1;
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
flag=0;
}
}
return flag;//如果是素数,返回1,否则返回0
}
int main(){
int i,n,count=0;
scanf("%d",&n);
for(i=1;i+2<=n;i++){
if(judge(i)&&!judge(i+1)&&judge(i+2)){//i是素数;i+1一定不是素数;i+2可能是也可能不是,故需要判断
count++;
}
}
printf("%d",count);
return 0;
}
1.函数判断是否为素数时,代码一平台运行超时,改为代码二。
//代码1
int judge(int n){//函数judge用来判断一个数是不是素数
int i,flag=1;
for(i=2;i<=n;i++){
if(n%i==0){
flag=0;
}