gpt4 book ai didi

c++ - 求一个数的因数。没有得到准确的结果

转载 作者:太空狗 更新时间:2023-10-29 23:26:38 27 4
gpt4 key购买 nike

有人可以帮助纠正我的算法吗?我已经对几个数字进行了测试,但它没有输出完整的因式分解。对于具有大量因子的数字,它完全失败了。

int num = 20;

for(int i = 2; i <= num; i++)
{
if(num%i == 0)
{
cout << i << endl;
cout << num << endl;
num = num/i;
}
}

编辑:提供的两个答案没有用,仍然没有得到完整的结果。

EDIT2:除数 VS 因数

最佳答案

从您对@Luchian Grigore 的评论来看,您将除数(质数)分解 混淆了。数字的除数是所有 num % i == 0 为真的数字。因式分解意味着通过较小数字的乘积来表示 num。如果你想要分解的唯一性,你通常使用质数分解。

要获得所有除数,您的代码应该是

for ( int i = 1; i <= num; ++i ) // note that 1 and num are both trivially divisors of num
{
if ( num % i == 0 ) // only check for divisibility
{
std::cout << i << std::endl;
}
}

要获得(质数)分解,它是

for ( int i = 2; i <= num; ++i )
{
while ( num % i == 0 ) // check for divisibility
{
num /= i;
std::cout << i << std::endl;
}
// at this point, i cannot be a divisor of the (possibly modified) num.
}

关于c++ - 求一个数的因数。没有得到准确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995069/

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