幻想森林

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

[通用编程] 一个求完数的问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-6-11 05:22:24 | 显示全部楼层 |阅读模式
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程   找出1000以内的所有完数。
#include<stdio.h>
main()
{
          int i,j,sum;
for(i=1; i<1000; i++)
{
          sum=0;
     for(j=1; j<=i/2; j++)
          if(i%j==0) sum+=j;
          if(sum==i)
          printf("%d是完数\n",i);
}
}

这里的 for(j=1;j<=i/2;j++)  的j<=i/2 是什么意思呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

7

主题

190

帖子

1766

积分

⑥精研

....

积分
1766
发表于 2007-6-11 16:33:31 | 显示全部楼层
这个是节省循环处理判断.
因为任何数的因子不可能大于此数本身的1/2
当然此处改为j < i也未尝不可,但是白白浪费了i/2的循环.无意义 [s:2]
萝卜啊,白菜啊,土豆星啊,梦想有爱啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 15:08 , Processed in 0.020575 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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