完数题
#题目要求:输入2 个正整数m 和n(m>=1,n>=1 000),输出m ~n 之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数factorsum(number),它的功能是返回number 的因子和。
###思路:
1)明确完数定义,如果一个数除它自身之外,它的所有的因子的和等于它本身,这个数即是完数;
2)设计完数函数factorsum:定义整形变量x从整数1开始逐1增大,如果x能被输入数整除,累加入整形变量sum,返回sum的值;
3)设计主体函数main:定义整形变量m、n、i, 整形变量i从m开始逐一增加至n,在此过程中用循环语句判断每个i是否为完数(根据i是否等于factorsum函数返回值判断),若i为完数,则输出,若i不为完数,则进行下一个i的判定;
4)开始码程序,输入多组数据进行测试;
####错误:
1)数值1符合完数定义,却无法被正常输出;(原因:factorsum函数判定条件中,由于x从1开始递增且x需小于被判定数,若被判定数为1,则x无法取到1值,则返回值sum不存在1值)
####改正:
1)在factorsum函数中添加被判定数为1的特殊情况的逻辑语句:若被判定数为特殊值1,则sum函数返回值直接为1;
2)若被判定数不为1,则按正常完数定义判断。