3 回答
TA贡献34条经验 获得超15个赞
#include<stdio.h>
#include<math.h>
int sushu(int n);
#define N 1000
int main()
{
int i,t;
for(i=2;i<N;i++)
{
t=sushu(i);
if(t) printf("%d\t",i);
}
putchar('\n');
return 0;
}
int sushu(int n)
{
int i;
if(n==2||n==3) return 1;
if(n%6!=1&&n%6!=5) return 0;
int temp=sqrt(n);
for(i=5;i<temp;i+=6)
if(n%i==0||n%(i+2)==0)
return 0;
return 1;
}
这个运行起来就快一点
TA贡献34条经验 获得超15个赞
#include<stdio.h>
int sushu(int n);
#define N 1000
int main()
{
int i,t;
for(i=2;i<N;i++)
{
t=sushu(i);
if(t) printf("%d ",i);
}
putchar('\n');
return 0;
}
int sushu(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0) break;
}
if(i>=n) return 1;
else return 0;
}
用分函数表示就是这样
TA贡献17条经验 获得超0个赞
#include "stdio.h"
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=2;m<=1000;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{
leap=0;break;
}
if(leap)
{
printf("%-4d",m);
h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
return 0;
}
- 3 回答
- 0 关注
- 2090 浏览
添加回答
举报