标题:循环控制结构程序方面
只看楼主
FrankloveCyy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-5-5
结帖率:11.11%
已结贴  问题点数:20 回复次数:4 
循环控制结构程序方面
#include<stdio.h>
#include<math.h>
int main(void){
    int m,i,k;
    scanf("%d",&m);k=sqrt(m);
    for(i=2;i<=k;i++)
    if(m%i== 0)
    break;
    if(i>k){
        printf("%d is a primer number\n",m);
    }
    else{
        printf("%d is not a primer number\n",m);
    }
}
请问下各位前辈我举个例子
如果m=29,那么k≈5.38516,那么现在逻辑是,i=2<5.38516,那么应该判定为 29is not a primer numbers也就是29不是一个素数,但是实际上29又是一个素数,那么当m=29时,此时的 i程序赋予的值是多少啊?怎么运算出来的?
搜索更多相关主题的帖子: 循环 控制 结构 primer not 
2019-05-12 15:11
星泪成寒
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:75
专家分:539
注 册:2013-5-19
得分:7 
i=2<5.38516,那么应该判定为 29不是一个素数
--> 这是什么逻辑 ?

另外k声明为int型, 那么 m=29时 k=5.


2019-05-13 16:34
LTao
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:86
注 册:2019-5-11
得分:7 
#include<stdio.h>
int main(void)
{
    int m,i,k;
    scanf("%d",&m);k=sqrt(m);
    for(i=2;i<=k;i++)
        if (m%i== 0)
            break;
    if(i>=k)
        printf("%d is a primer number\n",m);
    else
        printf("%d is not a primer number\n",m);
}

[此贴子已经被作者于2019-5-14 00:02编辑过]

2019-05-13 17:10
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
得分:7 
break打破了循环,那么i就会不等于k,也就不是素数了
2019-05-13 22:07
FrankloveCyy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-5-5
得分:0 
回复 4楼 豆豆的滴
额,大神你好,我打好这段代码,然后运行程序之后,我输入数字29  ,然后最后输出的结果是29是一个素数。
您的意思是因为K=sqrt(29)  5  5除以2不能整除,所以=0  然后就break直接打破循环,程序直接判定29是一个素数吗?
2019-05-24 12:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494691-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.128546 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved