gpt4 book ai didi

c - 1 到 1000 之间的完美数字

转载 作者:行者123 更新时间:2023-11-30 19:29:59 25 4
gpt4 key购买 nike

我不明白为什么这个程序没有给出任何输出。我只是看不到这个错误。这是一个查找 1 到 1000 之间所有完美数字的程序。请帮我找到这个错误。谢谢。

#include <stdio.h>

int main(){
int number=1, i, sum=0;

while(number<=1000){

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

if(sum==number){
printf("%d is perfect\n", numero);
}
number++;
}

return 0;
}

最佳答案

正如已经说过的,您必须重置 sum在循环开始时为零。
您还必须替换 numeronumber (错字)。
为了更进一步,我建议您使用 for 循环而不是 while 循环,恕我直言,我发现它更具可读性。内部 for 循环也可以在 i <= number/2 时停止。优化一下。这是我建议的代码:

#include <stdio.h>

int main(){

int sum;

for(int number = 1;number <= 1000; number++){
sum = 0;

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

if (sum == number){
printf("%d is perfect\n", number);
}
}

return 0;
}

输出:

6 is perfect
28 is perfect
496 is perfect

关于c - 1 到 1000 之间的完美数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51962569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com