gpt4 book ai didi

C - 使用数组打印从 1 到 100 的所有素数

转载 作者:行者123 更新时间:2023-11-30 19:28:25 24 4
gpt4 key购买 nike

好吧,我遇到了这个挑战,我必须打印从 1100 的所有素数...但是我的代码中有一个错误,我无法去寻找。我认为应该如何解决这个问题:

  • 对于 3 到 100 之间的任何数字,检查素数数组中是否有任何其他数字可以整除它。如果存在,则该数不是质数。如果不存在,则该数字是素数,应添加到数组中。很简单,对吧?但它不起作用。

这是我的代码:

#include <stdio.h>

int main() {
int Primes[50] = {0};
int i, j, k;

Primes[0] = 2;
Primes[1] = 3;
for (i = 3; i < 101; i++) {
for (j = 2; j < 100; j++) {
if (i % Primes[j] != 0 && Primes[j] != 0) {
Primes[j] = i;
}
}
}
printf("Primes array : \n");
for (k = 0; k < 51; k++) {
printf("%d ", Primes[k]);
}
return 0;
}

最佳答案

我们可以不假设魔数(Magic Number)为 25...即 k!=25将其替换为 i<=100。

#include <stdio.h>
#include <stdlib.h>

int main(void){
int Primes[50] = {0};
int i,j,k = 0;
Primes[0]=2;
Primes[1]=3;

for(i=0; i<=100; i++) {
for(j = 2; j<=i; j++) {
if(i % j == 0 ){
if(i == j)
Primes[k++]=i;
break;
}
}
}

printf("Primes array : \n");

for(int index = 0;index < k; index++) {
printf("%d\n", Primes[index]);
}

return 0;
}

关于C - 使用数组打印从 1 到 100 的所有素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53971588/

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