输入二个整数m和n,输出二数之间的所有素数(包括m和n),统计素数个数,并计算这些素数的累加和。

[复制链接]
查看11 | 回复0 | 2009-10-1 00:27:07 | 显示全部楼层 |阅读模式
下面是改过的,你的程序,每次只要有一个for(j=2;jmain(){ int m,n,min,max; int i,j,N=0; int sum; sum=0; scanf("%d%d",&m,&n); if(m>n)min=n,max=m; else
min=m,max=n; for(i=min;iint prime (int x,int y){//判断质数过程,实义为主函数做判别
while (yn){no=m;m=n;n=no;}//此时的no变量无实义,只作为中间变量使用,目的是为了节省辅助空间
if (m<=2) {sum+=2;no=1;printf("2\n");}//为了减少时间复杂度而提前加上特殊的偶质数
for(i=m%2?m:m+1;i<=n;i+=2)//每次+2,也是为了减少时间复杂度
if (prime(i,2)) {sum+=i;no++;printf ("%d\n",i);}
printf("no=%d\nsum=%d\n",no,sum);
while (1);
return 0;}参考资料:这是最简便的办法了

已赞过已踩过<
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行