Raptor-寻找1000以内完数

20 篇文章 2 订阅

1.问题描述

    一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子是1,2,3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数。

2.思路分析

  1. 首先,本题是寻找1000以内的完数,那么一定有一个循环变量i从1到1000,然后对于每个循环变量来说都判断这个i是不是完数

  2. 现在问题是,怎么判断这个i是不是完数,作为简化主要流程图的目的,更明显的展示我们的思路,我们设计一个判断一个数是不是完数的子程序,主程序如下图所示:

主程序

  1. 好了,现在主要的思路清楚了,现在就是子程序的设计,如何判断完数了。
        对于上面关于完数的定义我们可以发现,我们要判断输入的一个数n是不是和n的因子的和相等,那么怎么求n的因子呢?同样的还是遍历。
        我们定义一个循环变量i,我们发现当 i > n 2 i \gt \frac {n}{2} i>2n的时候就不可能是n的因子了,所以循环变量i的范围是 1 ≤ i ≤ n 2 1\le i \le \frac {n}{2} 1i2n。同时我们定义一个求和变量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

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏雪无痕是个小疯子

您的鼓励将促使我的创作更有价值

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值