程式設計找出1000以內的所有完數
阿新 • • 發佈:2019-02-08
一個數如果恰好等於它的因子之和,這個數就稱為“完數”(因子不包括它本身)。例如6=1+2+3.
找出1000之內的完數程式碼:
#include <stdio.h>
int main()
{
int i = 0;
int arr[100] = { 0 }; //定義一個數組來存放每個數產生的因子
for (i = 2; i <= 1000; i++)
{
int m = 0;
int k = 0;
int j = 0;
int sum = 0;
for (m = 1 ; m < i; m++)//此處不能用<=;完數的因子不能包括它本身
{
if (i%m == 0) //找出i除了他本身之外的所有因子
{
arr[k] = m; //將找到的因子存放在陣列中
k++; //用k的值來判斷i共有多少個因子
}
}
for (j = 0; j < k ; j++)
//此處不能用<=;因為陣列的下標從0開始,並且存放因子的時候也是a[0]開始存的
{
sum = arr[j] + sum; //用sum來表示它的因子相加的和
}
if (sum == i) //如果因子之和等於i,則將i打印出來.
{
printf("%d\n",i);
}
}
return 0;
}