c语言分解质因数

2024-11-22 12:19:21
推荐回答(3个)
回答1:

这个算法是嵌套的循环
外层的 for循环 表示 i 越来越大 变量i用来试探每一个小于n的数是否为因子
内存的while循环表示 n 越来越小 表示i 是否为 一个因子 这个因子共出现几次。
n 会越来越小 但是不能小于i 否则就跳出while循环。所以要写 while(n!=i)

回答2:

if((n%i==0)&&(i!=n))
{n=n/i;
printf("*%d",i);
}
这个地方,i作为n的因数不一定只出现一次
所以应该用while循环,让n=n/i直到无法除尽,否则可能影响后面的因子
if((n%i==0)&&(i!=n))
{
while(n%i==0)
n=n/i;
printf("*%d",i);
}

回答3:

因为可能有多个质因数i