为了账号安全,请及时绑定邮箱和手机立即绑定

怎么写:编写判断素数的函数,输出1000以内所有素数,(提示:是素数返回值为1,不是返回值为0)

怎么写:编写判断素数的函数,输出1000以内所有素数,(提示:是素数返回值为1,不是返回值为0)

C
kingsssup 2018-01-02 13:20:37
查看完整描述

3 回答

?
慕沐4449596

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;

}

这个运行起来就快一点

查看完整回答
1 反对 回复 2018-01-06
?
慕沐4449596

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;

}

用分函数表示就是这样

查看完整回答
反对 回复 2018-01-06
?
昵称好难起757

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;

}


查看完整回答
反对 回复 2018-01-02
  • 3 回答
  • 0 关注
  • 2098 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信