1. 程式人生 > 實用技巧 >一個數如果恰好等於它的因子之和,這個數就稱為“完數”例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。程式設計序找出1000之內的所有完數,並按下面格式輸出其因子:

一個數如果恰好等於它的因子之和,這個數就稱為“完數”例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。程式設計序找出1000之內的所有完數,並按下面格式輸出其因子:

一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。程式設計序找出1000之內的所有完數,並按下面格式輸出其因子:

6 its factors are 1,2,3

答案解析:

因子:整數a除以整數b(b≠0) 的商正好是整數而沒有餘數,我們就說b是a的因子。整數n除以m,結果是無餘數的整數,那麼我們稱m就是n的因子。 需要注意的是,唯有被除數,除數,商皆為整數,餘數為零時,此關係才成立。因子是不包括自身的

舉一個例子:20 = 4 * 5,則4和5就是20的因子,也被稱之為因子

程式碼示例:

#include<stdio.h>

int main()
{
	int data, fator, sum;      /* data表示要判斷的數,fator表示因子,sum表示因子之和*/

	for (data = 2; data <= 1000; data++)
	{
		//1是所有整數的因子,所以因子之和從1開始
		sum = 1;
		for (fator = 2; fator <= data / 2; fator++)
		{
			/* 判斷data能否被fator整除,能的話fator即為因子  因子不包括自身 */
			if (data % fator == 0)
			{
				sum += fator;
			}
		}
		// 判斷此數是否等於因子之和 */
		if (sum == data)    
		{
			printf("%d its factors are 1, ", data);
			for (fator = 2; fator <= data / 2; fator++)
			{
				if (data % fator == 0)
				{
					printf("%d, ", fator);
				}
			}
			printf("\n");
		}
	}
	return 0;
}

執行截圖: