Raptor寻找1000以内完数
1.问题描述
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子是1,2,3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数。
2.思路分析
首先,本题是寻找1000以内的完数,那么一定有一个循环变量i从1到1000,然后对于每个循环变量来说都判断这个i是不是完数
-
现在问题是,怎么判断这个i是不是完数,作为简化主要流程图的目的,更明显的展示我们的思路,我们设计一个判断一个数是不是完数的子程序,主程序如下图所示:
好了,现在主要的思路清楚了,现在就是子程序的设计,如何判断完数了。
对于上面关于完数的定义我们可以发现,我们要判断输入的一个数n是不是和n的因子的和相等,那么怎么求n的因子呢?同样的还是遍历。
我们定义一个循环变量i,我们发现当i>n2 的时候就不可能是n的因子了,所以循环变量i的范围是1≤i≤n2 。同时我们定义一个求和变量sum初始值为0,每一次遍历,只要发现n能够整除i(我们用 n mod i=0来判断是不是整除),我们就把这个i加上去,因此有sum=sum+i,直到到循环结束。
等到循环结束了,我们判断sum和n是否相等,如果相等就令flag=1,不相等就令flag=0。注意,其实这里用其他的数字表示也可以,但是0-1有很直观的意义,一般用0和1来分别表示不满足和满足。具体子程序如下:
3.结果展示
以上就是Raptor中寻找1000以内的完数的详细内容,这篇博客只提供教学(私以为已经足够详细),再不会编程序的话需要程序请联系QQ545030769