gpt4 book ai didi

c - 在 C 中寻找质因数

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

我正在尝试生成数字 n 的所有质因数。当我给它数字 126 时,它给了我 2、3 和 7,但是当我给它说 8 时,它给了我 2、4 和 8。关于什么的任何想法我做错了吗?

int findPrime(unsigned long n)
{
int testDivisor, i;
i = 0;
testDivisor = 2;
while (testDivisor < n + 1)
{
if ((testDivisor * testDivisor) > n)
{
//If the test divisor squared is greater than the current n, then
//the current n is either 1 or prime. Save it if prime and return
}
if (((n % testDivisor) == 0))
{
prime[i] = testDivisor;
if (DEBUG == 1) printf("prime[%d] = %d\n", i, prime[i]);
i++;
n = n / testDivisor;
}
testDivisor++;
}
return i;
}

最佳答案

即使您能够将 n 除以它,您也在增加 testDivisor。只有当它不再可分割时才增加它。这将导致 2,2,2,因此您必须进一步修改它,以免存储重复项,但由于这是一项家庭作业,我认为您应该自己解决这个问题: )

关于c - 在 C 中寻找质因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285323/

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