左边是题目,右边是我写的代码👇
我一直错“最大范围”这个问题,然后看了一下别人写的代码加了一行(红色标出处),虽然答案对了可是还是无法理解pta的评分点是什么意思👇
谢谢你们的答疑解惑🥰
左边是题目,右边是我写的代码👇
1 不是完数, 因为你的代码里不能将 1 排除,当 number = 1 时, 函数里返回值是 1,所以判断出错了。两个函数可以这么写,供参考:
int factorsum(int number) {
int s = 0;
for (int i = 1; i < number / 2 + 1; i++) {
if (number % i == 0) s += i;
}
return s;
}
void PrintPN(int m, int n) {
int ss = 0;
for (int i = m; i <= n; i++) {
if (factorsum(i) == i) {
ss++;
printf("%d = 1", i);
for (int j = 2; j < i / 2 + 1; j++) {
if (i % j == 0)
printf(" + %d", j);
}
printf("\n");
}
}
if (ss == 0)
printf("No perfect number");
}