判断亲和数
对于正整数a和b(a>=b),如果a除以b的余数为0,那么b是a的因数,例如6的因数为1,2,3,6。
亲和数,指两个正整数,彼此的全部因数之和(这里的因数不包括整数自己)与另一方相等。例如12的因数之和 1+2+3+4+6=16, 26的因数之和为 1+2+13=16,12和26是亲和数。
输入两个正整数,判断这两个数是否为亲和数。
1. 准备工作
(1)保留默认的小猫角色和白色背景。
2. 功能实现
(1)点击绿旗,小猫询问“请输入第一个正整数”;
(2)小猫询问“请输入第二个正整数”;
(3)小猫计算两个数的因数和后,判断这两个数是否亲和数,例如如果是亲和数,小猫说“xx和xx是亲和数”;如果不是,小猫说“xx和xx不是亲和数”。
3. 设计思路与实现
(1)角色分析
角色:默认角色小猫
(2)背景分析
背景:默认背景(无色)
(3)所用积木块介绍
a. 外观类
- 在规定的时间内在舞台上显示输入的文字(说话云朵)。
b. 事件类
- 程序开始积木块。
- 点击舞台区的绿旗,执行以绿旗开始的所有程序脚本。
c. 控制类
- 条件判断语句,如果条件满足执行那么模块里面的积木指令,如果条件不成立,返回值为假,那么执行否则模块里面的积木指令。
- 循环积木块:一遍一遍地执行包起来的积木序列。
- 判断条件是否为真,如果尖尖角里面的返回值为真则停止循环。
d. 侦测类
- 角色发出询问,并在舞台下边框弹出对话框,等待用户的输入回答。
- 实时的侦测用户所输入的回答,并存储在“回答”变量中。
e. 运算类
- 比较运算,左边等于右边返回true值(真),否则返回false值(假)。
- 连接两个字符串,得到一个新的字符串。
- 算术运算,返回左边除以右边的余数。
f. 变量类
- 建立一个变量,输入变量名称,然后选择适用于所有角色还是适用于当前角色。
- 设置变量的值为给定值,通常用于初始化变量。
- 设置变量的值为自身的值加X。
g. 自制积木类
- 建立一个积木,输入积木名称,然后添加积木的参数,以及选择“运行时是否刷新屏幕”。
(4)角色、舞台背景设置
a. 角色设置
默认角色设置,无需修改角色造型。
b. 舞台背景设置
默认舞台背景设置,无需修改舞台背景。
(5)脚本编写
编程题的功能实现有多种方案,标准答案所示参考程序仅是其中的一种,最终以是否完成题目要求的功能实现效果作为评分依据。
新建变量a1,用来存储第一次询问的回答。
新建变量a2,用来存储第二次询问的回答。
新建变量r1,用来存储第一个数的因数和。
新建变量r2,用来存储第二个数的因数和。
新建变量result,用来存储函数的返回值,即因数和。
新建变量i,用来存储循环的索引。
a. 角色:小猫
函数:因数和,参数:n。
- result = 0
- i = 1
- 重复执行直到 i = n:(全部因数之和(这里的因数不包括整数自己))
- 如果 n 能够整除 i,即 i 是n的因数,那么 result += i。(如果a除以b的余数为0,那么b是a的因数)
- i+=1
当绿旗被点击时:
- 开始:点击小绿旗,也就是程序启动,就要执行后续的程序指令。
- 询问“请输入第一个正整数”,并将回答存入a1。
- 询问“请输入第二个正整数”,并将回答存入a2。
- 调用函数“因数和”,并将结果存入r1。
- 调用函数“因数和”,并将结果存入r2。
- 如果r1==r2,那么说“a1和a2是亲和数”,否则说“a1和a2不是亲和数”。
4. 评分标准
(1)能询问输入两个正整数,存到两个变量中;(2分)
(2)能够计算因数和;(6分)
(3)能够判断两个因数和是否相等;(5分)
(4)能够用连接说出是亲和数和不是亲和数。(2分)