求一道题的算法

killme2008 2003-09-24 08:17:54
我在学<c++大学教程>

有道题卡住不知道怎么解决,请指点

一个整数的所有因子(不包括自身)之和等于该数,这样的数叫做完数.例如6=1+2+3
编写一个程序,确定参数是否为完数,用这个函数确定和打印1到1000内的所以完数,打印没个完数的因子并确定这个数确实是完数

这对于高手应该没什么挑战,只是自己没有个大概的想法,请指点
...全文
66 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
justju 2003-09-25
  • 打赏
  • 举报
回复
没错的。
killme2008 2003-09-25
  • 打赏
  • 举报
回复
楼上的用你的方法不行啊
金笛子 2003-09-24
  • 打赏
  • 举报
回复
求完数
      #include <iostream.h>
      void main( )
      {
         int s;
         for (int i=1;i<=1000;i++)
         {
           s=0;
           for (int j=1;j<i;j++)
             if (i%j==0)
              s=s+j;
           if (s==i)
             cout<<i<<endl;
         }
       }
       输出结果:
         6
         28
         496
 
可以看看
killme6115 2003-09-24
  • 打赏
  • 举报
回复
我卡在第一步
就是不知道怎么求因子啊
能不能有更快的方法??贴出程序来
killme6115 2003-09-24
  • 打赏
  • 举报
回复
第一步就是我卡住的地方
我不知道该怎么求因子??
Kyle_Chen 2003-09-24
  • 打赏
  • 举报
回复
对范围内的每一个数 N
1) 求出其所有因子 (从1 到 Int(SQRT(N))逐个去除N, 看能否整除)
2) 计算所有因子之和 S
3) 看S是否等于该数, 如果是就打印N和所有因子.

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧