gpt4 book ai didi

c - 使用埃拉托斯特尼筛法的质因数

转载 作者:行者123 更新时间:2023-11-30 21:12:03 27 4
gpt4 key购买 nike

尝试使用埃拉托斯特尼筛法打印一个数字的质因数,而不是先找到因数,然后检查每个因数是否是质数。

 #include<stdio.h>
#include<math.h>

void primeFactors(int num)
{
int factors[100];

int i,j=0,u,k=0,l;
u=sqrt(num);

for(i=0;i<100;i++)
factors[i]=1;

for(i=2;i<=u;i++)
{
if(factors[i]==0)
continue;

if(num%i==0)
{
factors[j]=i;
l=factors[j];
k=2*factors[j];
j++;

while(k<=u)
{
if(factors[k]==0)
continue;
factors[k]=0;
k+=l;
}
}
}

for(i=2;i<=u;i++)
if(factors[i]!=1)
printf("%d\n",factors[i]);

}

int main()
{
int n=797;
primeFactors(n);
return 0;
}

在 Xcode 上运行它时,它既不显示任何错误,也不打印任何内容。我想不通这个问题。为什么这个不打印?谢谢。

最佳答案

这部分:

while(k<=u)
{
if(factors[k]==0)
continue;

看起来很像无限循环。

关于c - 使用埃拉托斯特尼筛法的质因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414578/

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