# PTA上面的一个练习题说我格式错误

wutianlong220
• 356

``````int factorsum( int number ) {
int sum = 0;
for (int i = 1; i < number; i++) {
if (number%i == 0) {
sum = sum + i;
}
}
return sum;
}

void PrintPN( int m, int n ) {

int count = 0;

while (m <= n) {
if (factorsum(m) == m) {
count++;
//6 = 1 + 2 + 3
//28 = 1 + 2 + 4 + 7 + 14
printf("%d =",m);
for (int i = 1; i < m; i++) {

if (i == 1) {
printf(" %d ",i);
} else if (m%i == 0) {
printf("+ %d ",i);
}
}
printf("\n");
}
m++;
}
if (count == 0) {
printf("No perfect number\n");
}
}
``````

``````
#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);

return 0;
}

int factorsum( int number ) {
int sum = 0;
for (int i = 1; i < number; i++) {
if (number%i == 0) {
sum = sum + i;
}
}
return sum;
}

void PrintPN( int m, int n ) {

int count = 0;

while (m <= n) {
if (factorsum(m) == m) {
count++;
//6 = 1 + 2 + 3
//28 = 1 + 2 + 4 + 7 + 14
printf("%d =",m);
for (int i = 1; i < m; i++) {

if (i == 1) {
printf(" %d ",i);
} else if (m%i == 0) {
printf("+ %d ",i);
}
}
printf("\n");
}
m++;
}
if (count == 0) {
printf("No perfect number\n");
}
}
``````

1 个回答