幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2552|回复: 6

[通用编程] 素数的问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-5-9 23:02:21 | 显示全部楼层 |阅读模式
程序如下:
#include "math.h"
main()
{
 int m,i,k,h=0,leap=1;
 printf("\n");
 for(m=101;m<=200;m++)
  { k=sqrt(m+1);
   for(i=2;i<=k;i++)
     if(m%i==0)
      {leap=0;break;}
   if(leap) {printf("%-4d",m);h++;
        if(h%10==0)
        printf("\n");
        }
   leap=1;
  }
 printf("\nThe total is %d",h);

用这个数m除二到这个数的 sqrt(m+1) 是什么意思呢? 我知道素数是只能被1和它本身整除的数,但那里又是什么意思呢? [s:6]  [s:6]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-5-10 20:46:07 | 显示全部楼层
这是一个数学原理,基本上只要知道是这么做就OK,这里是为了避免输入数据过大,在递减数据求可除数时溢出,而使用的一种方法.......以下省略N千字的介绍
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-5-13 10:19:03 | 显示全部楼层
就是说等于一个数学公式这样吗? [s:3]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-5-13 20:18:47 | 显示全部楼层
差不多吧,好像与算法的时间度也有点关系....
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

7

主题

190

帖子

1766

积分

⑥精研

....

积分
1766
发表于 2007-5-15 03:40:36 | 显示全部楼层
这句是精简算法的.
任何数的素数都不可能大于(他本身+1)的平方根.
开始用这句可以减少许多的遍历判断.
萝卜啊,白菜啊,土豆星啊,梦想有爱啊。
回复 支持 反对

使用道具 举报

7

主题

190

帖子

1766

积分

⑥精研

....

积分
1766
发表于 2007-5-15 03:42:53 | 显示全部楼层
其他的优化算法还有,所有能被2整除的偶数也一定不是素数.所有位相加能被3整除的数也一定不是素数.
萝卜啊,白菜啊,土豆星啊,梦想有爱啊。
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-5-16 08:09:38 | 显示全部楼层
晕,这么多性质 [s:8]  [s:8]  [s:8]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-28 16:48 , Processed in 0.023110 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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