?
归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏? + 留言?📝
生命如同寓言,其价值不在于长短,而在与内容!
一起加油!
目录
????????小明正在进行期末数学考试,现在他遇到了这样一个题:如果一个大于 1
的正整数的所有因子之和等于它的本身,则称这个数是完数,比如 6
,28
都是完数:6=1+2+3
;28=1+2+4+7+14
。请判断两个正整数之间完数的个数。小明想请聪明的你帮帮他。
输入格式 输入包含两个正整数 n1
和 n2
,表示题目描述中的数据范围。 正整数之间以空格间隔。 输出格式 针对输入,请打印出 n1
和 n2
之间(包括边界)存在的完数个数。
输入 2 5
输出 0
输入 5 7
输出 1
1<n1,n2<10000
#include <stdio.h>
int main(){
int m,n;
int sum;
int count;
int i,j;
scanf("%d%d",&m,&n);
count=0;
for(i=m;i<=n;i++){
//遍历给定范围,判断是否为完数
sum=0;
for(j=1;j<=i/2;j++){
//从1到该数一半开始循环判断
if(i%j==0){
//可以整除,累积求和
sum+=j;
}
}
if(sum==i){
//和等于i,则该数为完数,计数+1
count++;
}
}
//打印结果
printf("%d",count);
return 0;
}