gpt4 book ai didi

C: 多 while 循环和变量

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:25 24 4
gpt4 key购买 nike

这是我的代码:

#include <stdio.h> 

int main(){
int n=728,sum = 0, remainder, sump=0, d=2;

while(n>d){
if(n%d==0){
n/=d;
sump= sump+d;
}
else{
d++;
}
}
sump=sump+d%10+d/10;
printf("%d\n",sump);

while(n != 0){
remainder = n % 10;
sum = sum + remainder;
n = n / 10;
}
printf("%d\n",sum);
return 0;
}

这是我运行代码时得到的结果:

17
4

问题在于,虽然 sump 是正确的,因为 728 素数位的总和是 (2+2+2+7+1+3 =17) 728总和4 而不是17 这意味着在第二个 while 循环 n 等于 13,这是第一个循环的最后一个质因数。

我的错误是什么,在第二个循环中 n13 而不是 728

如果我的英语不好,请原谅我:S

最佳答案

n 的值不再是第一个 while 循环后的 728。在第二个 while 循环中,您正在提取 n 的数字,然后尝试将它们相加,但这些数字不是 7、2 8.
试试这个:

int temp = n; 
...
while(temp != 0){
remainder = temp % 10;
sum = sum + remainder;
temp = temp / 10;
}

关于C: 多 while 循环和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21366800/

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