C语言编程判断素数

这是我的程序:#include<stdio.h>voidmain(){inti,n;scanf("%d",&i);for(n=2;n<i;n++)if(i%n==0){p... 这是我的程序:
#include<stdio.h>
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n<i;n++)
if(i%n==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}
}
可是为什么输入9、15、51等数时运行出现“prime”(素数)呢?
展开
 我来答
红山人2008
推荐于2018-03-08 · TA获得超过4679个赞
知道大有可为答主
回答量:5699
采纳率:0%
帮助的人:3872万
展开全部
#include<stdio.h>
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n<i;n++)
if(i%n==0)
break; /*余数为0时终止循环,关键是这里.朋友*/
if(n<i)
printf("not prime\n");
else
printf("prime\n");
getch();
}
百度网友241f523
2009-02-07
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
...for只循环了一次,if else 里的两个 break 跳出 for循环...
故楼主的程序但凡2能整除的输出not prime,否则输出prime...
所以出现"输入9、15、51等数时运行出现“prime”(素数)"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
The_facE
2009-02-07 · TA获得超过1053个赞
知道小有建树答主
回答量:1087
采纳率:0%
帮助的人:914万
展开全部
程序本身就是错的,修改如下:

void main()
{
int i,n;
int flag = 0;
scanf("%d",&i);
for(n=2;n<i;n++)
{
if(i%n==0)
{
flag = 1;
break;
}
}

if (flag)
printf("no primer\n");
else
printf("primer\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
著述的鸭子非了
2009-02-07 · TA获得超过224个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:170万
展开全部
#include<stdio.h>
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n<i;n++)
{

if(i%n==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}

} //for 循环要加{ ……}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaocl112102
2009-02-07 · TA获得超过342个赞
知道答主
回答量:496
采纳率:0%
帮助的人:0
展开全部
当然了你这个程序有问题,无论你输入哪个数,它都只循环一次就跳出整个for循环了!因为你两个小程序块里都加了break!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式