天天看點

藍橋杯-算法訓練-8-2求完數題目思路代碼

題目

問題描述

  如果一個自然數的所有小于自身的因子之和等于該數,則稱為完數。設計算法,列印1-9999之間的所有完數。

樣例輸出

藍橋杯-算法訓練-8-2求完數題目思路代碼

思路

内層循環一直判斷能否被除盡,能就累加,内層循環完判斷是否等于i,等于就輸出i。

對于完數我不知道還有沒有更優的解,目前隻想到這種。

代碼

#include <stdio.h>
#include<math.h>
int main()
{    
	int i,j;
	
	for(i=1;i<10000;i++){
		int num=0;
		for(j=1;j<i;j++){
			if(i%j==0){
				num+=j;
			}
		}
		if(num==i)
		printf("%d\n",i);
	}
	return 0;
}
           

繼續閱讀