| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3973 人关注过本帖
标题:判断输入数是否为素数?
只看楼主 加入收藏
jenliscott
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2004-7-22
收藏
得分:0 

谢谢大家,我终于明白了~另外充一句:如果循环里没遇到可整除的数,循环结果他的结果已是i=n+1,即i>n,执行printf("%d为素数",m);

2004-07-28 11:41
fishy
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2004-7-26
收藏
得分:0 
以下是引用jenliscott在2004-07-22 14:17:13的发言:

大家好,我是C语言初学者,我现在遇到点总题想请教下大家, 例:判断输入数是否为素数。 # include "stdio.h" void main() {int m,n,i; scanf("%d\n",&m); n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0) break; if(i>k) printf("%d为素数",m); else printf("%d为合数",m);} 我想请问的是标注为红色字区域中,“为什么要i>k,才为素数”,例如我输入m=18,则K=4,循环中i=2时能整除,跳出循环,执行i>k条件下m为素数,但9比4大,说明18也不是素数呀,所以我有些想不通,请大家帮帮忙!谢谢!

那把printf放在循环里面不就好了

if (m%i==0)

  printf('合数\n");

else printf("素数\n");

[此贴子已经被作者于2004-07-28 16:55:32编辑过]


刚学完C 对C++不明白 汇编懂一点点点
2004-07-28 16:45
卧龙先生
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2004-7-18
收藏
得分:0 
为什么我那个不行啊??是不是哪里有缺陷呢??万望指点。

我是一只小小小小菜鸟!!
2004-07-28 21:26
fishy
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2004-7-26
收藏
得分:0 
以下是引用卧龙先生在2004-07-28 21:26:10的发言: 为什么我那个不行啊??是不是哪里有缺陷呢??万望指点。
可以的,不过include<maths.h>可以不用 呵

刚学完C 对C++不明白 汇编懂一点点点
2004-07-28 23:58
37433747
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-6-30
收藏
得分:0 

我有个问题就是;

求每个分数段的人数

用一级数组和循环做

90--100

80--90

70--80

60--70

60以下


2004-08-03 21:32
孤风紫水
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-8-4
收藏
得分:0 

我认为。。这各程序可以先排偶。。即只有半数的循环。。如果。要细还可以排3数。。就可以减少很多循环。。程序好点。。个人意见。。。

2004-08-04 12:43
忆楠
Rank: 1
等 级:新手上路
帖 子:721
专家分:0
注 册:2004-7-5
收藏
得分:0 
呵呵  我似乎来晚了  大家都讨论完了阿```

点 鼠 标 , 救 饥 民 http://www./
2004-08-05 20:51
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 

p是素数的==>a^p=a mod p;a为任意数..

p是素数<==> (p-1)!= -1 mod p


我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-08-12 10:06
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 
密码学中经常要用到上100位的素数,怎么去判断一个几百位的数是不是素数?

我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-08-12 10:08
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
收藏
得分:0 

可以写一个函数来检验:

prime(a) int a; { int i; for(i=2; i<(int)sqrt(a)+1; i++) if(!(a % i)) return 0; return 1; }

返回0不是素数,返回1是素数

2004-08-12 14:39
快速回复:判断输入数是否为素数?
数据加载中...
 
   



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

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