求m~n之間的所有完數(C語言)
阿新 • • 發佈:2021-01-07
技術標籤:c語言
【問題描述】
輸入2 個正整數m 和n(m>=1,n>=1 000),輸出m ~n 之間的所有完數,完數就是因子和與它本身相等的數。要求定義並呼叫函式factorsum(number),它的功能是返回number 的因子和。
例如,factorsum(12)的返回值是16(1 +2 +3 +4 +6)。
【輸入輸出樣例1】
Input m: 1
Input n: 100
1 6 28 (輸出格式控制符為:%5d)
【輸入輸出樣例2】
Input m: 1
Input n: 500
1 6 28 496 (輸出格式控制符為:%5d)
#include<stdio.h>
int factorsum(int number)
{
int sum=0;
if(number==1)
return number ;
for(int i=1;i<number;i++){
if(number%i==0)
sum+=i;
}
return sum ;
}
int main()
{
int m,n;
printf("Input m:");
scanf("%d",&m) ;
printf("Input n:");
scanf ("%d",&n) ;
for(int i=m;i<=n;i++){
if(i==factorsum(i))
printf("%5d",i);
}
return 0;
}