#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int factorsum(int number);
void PrintPN(int m, int n);
int main()
{
int m, n;
scanf("%d %d", &m, &n);
if (factorsum(m) == m) printf("%d is a perfect number\n", m);
if (factorsum(n) == n) printf("%d is a perfect number\n", n);
PrintPN(m, n);
system("pause");
return 0;
}
/* 你的代码将被嵌在这里 */
int factorsum(int number) {
int sum = 0;
if (number == 1)
return 1;
for (int i = 1; i <= number/2; i++)
if (number % i == 0)
sum = sum + i;
if (sum == number)
return sum;
else
return 0;
}
void PrintPN(int m, int n) {
int flag = 0;
for (int i = m; i <= n; i++) {
if (i == factorsum(i)) {
flag = 1;
printf("%d = 1", i);
for (int j = 2; j < i; j++) {
if (i % j == 0) {
printf(" + %d", j);
}
}
printf("\n");
}
}
if (flag == 0) {
printf("No perfect number");
}
}