c语言 用筛选法求100以内的素数

inti,j,a[100];for(i=2;i<100;i++){a[i]=i;for(j=2;j<=i;j++){if(j<i)if(a[i]%j==0)break;i... int i,j,a[100];
for(i=2;i<100;i++)
{ a[i]=i;
for(j=2;j<=i;j++)
{if(j<i)
if(a[i]%j==0)
break;
if(a[i]-j==0)
printf("%5d",a[i]);
}
}
printf("\n");
}
为什么运行不出结果呢?请高手详细说出原因,例如:如果说头文件错误,请说明原因,谢谢!答案在明天采纳!
展开
 我来答
wudriguez
2013-02-06
知道答主
回答量:19
采纳率:0%
帮助的人:8.4万
展开全部
#include<stdio.h>
main()
{
int k,i;
printf("100以内的素数是:");
for(k=1;k<=100;k++)
{
for(i=2;i<k/2;i++)
{
if(k%i==0)break;
}
if(i<k/2)
printf("%d\t",k);
}
}
写的不是很好,因为我只是一个大一的学生。大概就是这样的,现在的我是天津工业大学的学生,就这样。。。。
逸明鲸人
推荐于2016-11-08 · TA获得超过867个赞
知道小有建树答主
回答量:409
采纳率:100%
帮助的人:468万
展开全部
表示看不出你的程序有哪处用到了筛法...ms跟枚举没什么区别...
以下为普通的筛质数法的程序:
#include<iostream>
#include<stdio.h>
const int N=101;
int a[N],b[N];
int main(void)
{
int i,j;
a[0]=a[1]=1;
for(i=2;i<N;i++)if(!a[i]){
b[++b[0]]=i;
for(j=(N-1)/i;j>=2;j--)a[j*i]=1;
}
for(i=1;i<=b[0];i++){printf("%d ",b[i]);if(i%5==0)printf("\n");}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-02-24 · TA获得超过7224个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:2239万
展开全部
#include<iostream>
#include<stdio.h>
int main()
{
int i,j,a[100];
for(i=2;i<100;i++)
{
a[i]=i;
for(j=2;j<i;j++) //用小于号,不然的话退出的时候j=i+1的
{
if(j<i)
if(a[i]%j==0)
break;
}//括号加错地方了
if(a[i]-j==0)
printf("%5d",a[i]);

}
printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式