题目描述
小明正在进行期末数学考试,现在他遇到了这样一个题:如果一个大于 1 的正整数的所有因子之和等于它的本身,则称这个数是完数,比如 6,28 都是完数:6=1+2+3;28=1+2+4+7+14 。请判断两个正整数之间完数的个数 。小明想请聪明的你帮帮他 。
输入输出格式
输入格式
输入包含两个正整数 n1 和 n2 ,表示题目描述中的数据范围 。
正整数之间以空格间隔 。
输出格式
针对输入,请打印出 n1 和 n2 之间(包括边界)存在的完数个数 。
输入输出样例1
输入
2 5
输出
0
输入输出样例2
输入
5 7
输出
1
说明提示
1
【C语言解决完数难题】 /*数学题,如何判断一个数是否为完数,从1到该数的一半,遍历取,然后判断该数是否可以将其整除,可以的话将这些除数求和,判断是否等于该数,等于的话则该数为完数,否则不是 。*/#include#includeint main(){int m,n,count,t,j,x,sum;scanf("%d%d",&m,&n);count=0;if(m>n){ //应该是输入小和大的两个数,如果顺序相反则调换两数t=m;m=n;n=t;}for(j=m; j<=n; j++){ //遍历给定范围,判断是否为完数ssum=0;for(x=1; x<=j/2; x++){//从1到该数一半开始循环判断if(j%x==0) sum+=x;//可以整除,累积求和}if(sum==j) count++;//和等于j,则该数为完数,计数+1}printf("%d\n",count); //打印结果return 0;}
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
