1. 程式人生 > 其它 >求m~n之間的所有完數(C語言)

求m~n之間的所有完數(C語言)

技術標籤: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; }