#include <stdio.h>
int factorsum( int number );
void PrintPN( int m, int n );
int main()
{
int i, m, n;
scanf("%d %d", &m, &n);
if ( factorsum(m) == m ) printf("%d is a perfect number\n", m);
if ( factorsum(n) == n ) printf("%d is a perfect number\n", n);
PrintPN(m, n);
return 0;
}
int factorsum( int number ){
if(number==1) return number;
int sum=1;
int j=2;
for(;j<=number/2;j++){
if(number%j==0)
sum+=j;
}
if(sum==number)
return sum;
else return 0;
}
void PrintPN( int m, int n ){
int flag=0;
for(int i=m;i<=n;i++){
if (factorsum(i)){
printf("%d = 1",i);
flag=1;
for(int j=2;j<=i/2;j++){
if(i%j==0)
printf(" + %d",j);
}
printf("\n");
}
}
if(flag==0)printf("No perfect number");
}
习题6-3 使用函数输出指定范围内的完数
最新推荐文章于 2022-04-10 17:50:16 发布
本文介绍了一个使用C语言实现的程序,该程序可以检测并打印指定范围内的所有完美数。完美数是指其所有真因数(除自身外的因数)之和等于该数本身的正整数。程序首先读取两个整数作为范围,然后使用一个函数来判断一个数是否为完美数,并在范围内找出所有符合条件的完美数。
摘要由CSDN通过智能技术生成