/*
题目描述
一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。
编程序找出N之内的所有完数,并按下面格式输出其因子:
输入
N
输出
? its factors are ? ? ?
*/
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(void)
{
int n, x, sum;
scanf("%d", &n);
for (int i = 6; i < n; i++)
{
sum = 0;
for (x = 1; x < i / 2 + 1; x++)
if (i % x == 0)
sum += x;
if (sum == i)
{
printf("%d its factors are ", i);
for (x = 1; x < i / 2 + 1; x++)
if (i % x == 0)
printf("%d ", x);
printf("\n");
}
}
return 0;
}