求带有详细注释的用c语言编写的可产生一百到二百之间素数的程序

 我来答
小鱼冒泡e
2013-03-12 · 超过12用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:29.2万
展开全部

问题:求100-200之间的素数。

分析:设n是100到200之间的一个数,那么如果n不是一个素数,一定有一个2-15之间的一个因数。为什么是15,因为15*15 = 225>200.那么现在我们用排除法,用2,3,4……,15除100-200之

间的数如果这个数能整出说明就不是素数.


#include <stdio.h>

int main()

{

int array[120]; //用来保存100-200之间的每个数

int i,j;

for (i = 0;i<101;i++) 

{

array[i]=100+i; //初始化这个数组

}

for (j=2;j<=15;j++) //用来遍历2-15之间的这14个数

{

for(i=0;i<101;i++) //用来遍历100-200之间的每个数

{

if (array[i]!=0&&array[i]%j==0) //判断试的数array[i]能否被j整出 array[i]=0的说明已经判断了不是素数

{

array[i]=0; //不是素数就将该数置为0

}

}

}

for (i = 0;i<101;i++)

{

if (array[i]!=0) //输出所有没有置为0的数,也就是100-200之间的素数

{

printf("%d ",array[i]);

}

}

}

运行结果:

P.S.其实这个题目中还可以优化,不用用2-15之间的每个数去试,只要用2-15之间的素数去试,至于为什么,LZ可以自己思考哈,希望能对你有帮助

追问
能把程序给全吗,加上解释,谢谢了。已采纳
文皓9
2013-03-12
知道答主
回答量:60
采纳率:0%
帮助的人:30.4万
展开全部
# include <stdio.h>
int main()
{
int i,j,t=0;//定义三个整型变量,i,j控制循环,t判断下面的if语句是否执行了。
for(i=100;i<=200;i++)
{
t=2;
for(j=2;j<i;j++)
{
if(i%j==0)//如果对从2到i-1的数遍历取余,若取余不为零,则说明i不为素数,则跳出此循环。
break;
t++;//若每次遍历都没执行以上的break语句,则说明该数为素数,t自增一次
}
if(t==i)//若t等于i,说明i是素数,则输出素数
printf("%-5d",i);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式