一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6的因子为1,2,3,而6=1+2+3,因此6是完数。输入整数n,编程找出2-n(包括n)之内的所有完数,并按下列格式输出其因子:6 its factors are 1 2 3。
输入格式:
输入整数n(n在2-10000之间)
输出格式:
每行输出一个完数,格式如下:因子间有一个空格隔开,每行结束后也有一空格。
6 its factors are 1 2 3
......
提示:
输入样例:
10
输出样例:
6 its factors are 1 2 3
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h>
void findPerfectNumbers(int n) {
for (int i = 2; i <= n; i++) {
int sum = 0;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d its factors are ", i);
for (int j = 1; j < i; j++) {
if (i % j == 0) {
printf("%d ", j);
}
}
printf("\n");
}
}
}
int main() {
int n;
scanf("%d", &n);
findPerfectNumbers(n);
return 0;
}