鱼C论坛

 找回密码
 立即注册
查看: 1678|回复: 7

[已解决]c语言 求素数

[复制链接]
发表于 2019-1-6 13:41:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
main()
{
        int m,i,k,r;
        scanf("%d",&m);
        k=m;
        for(i=2;i<k-1;i++)
        {
                r=m%i;
                if(r==0)break;

        }
        if(i>=k)
                printf("%d is a prime number \n",m);
        else
          printf("%d is not a prime number \n",m);
}

其中if(i>=k)为什么是这样?
k不是我们输入的一个数字吗
那么i作为除数,怎么会大于被除数呢?

这个代码是正确的,我看不懂
最佳答案
2019-1-6 13:51:52
for(i=2;i<k-1;i++)
        {
                r=m%i;
                if(r==0)break;

        }
i 过了for句语后是不是应该还要自增一次?
自增后是不是应该比K要大?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-6 13:51:52 | 显示全部楼层    本楼为最佳答案   
for(i=2;i<k-1;i++)
        {
                r=m%i;
                if(r==0)break;

        }
i 过了for句语后是不是应该还要自增一次?
自增后是不是应该比K要大?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-6 13:51:58 | 显示全部楼层
i从2开始,一直到m结束。
如果其中有满足m%i ==0的结果,用brak跳出循环,此时i<m,m不是素数.
如果m%i ==0一直不满足,最后i==m才会跳出循环,此时只判断等号成立就行了。大于号实际上用不到。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-6 13:56:01 | 显示全部楼层
Mountain_gs 发表于 2019-1-6 13:51
i从2开始,一直到m结束。
如果其中有满足m%i ==0的结果,用brak跳出循环,此时i

这个程序不对吧
  for(i=2;i<k-1;i++)里面应该是  for(i=2;i<k;i++)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-6 15:01:22 | 显示全部楼层
Mountain_gs 发表于 2019-1-6 13:56
这个程序不对吧
  for(i=2;i

for(i=2;i<k-1;i++)是没错的
如果是 for(i=2;i<k;i++)

会出现除数大于被除数的

谢谢你的回复·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-6 15:01:55 | 显示全部楼层

谢谢您的回复,明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-6 18:37:53 | 显示全部楼层

我明白了  主要不了解for,谢谢大家的回复

while <条件表达式>语句
执行过程

首先计算<表达式>的值,判断条件是否成立。
若条件为ture,刚执行语句(循环体),当循环体执行完后,将控制返回到while语句,并对<条件表达式>进行再次测试,如果仍为ture,则继续执行循环体;
如果<条件表达式>的值为false,则退出循环,执行循环体后面的语句。

for的语句
格式:for(表达式1;表达式2;表达式3) 语句

执行过程

(1)先求解表达式1。

(2)求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3步;若值为假(为0),则结束循环,转到第5步。

(3)求解表达式3

(4)转回上面第2步继续执行

(5)循环结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-6 19:31:34 | 显示全部楼层
杨德兴 发表于 2019-1-6 18:37
我明白了  主要不了解for,谢谢大家的回复

while 语句

表达式2  为假就退出循环体,还有什么能不明白的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-3 04:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表