网站首页 网站地图
网站首页 > 电商创业 > 100以内的素数c语言

100以内的素数c语言

时间:2026-03-18 11:01:01

方法一:暴力枚举法

```c

include

int main() {

int x = 2, i, count = 0;

while (count < 20) {

int isPrime = 1;

for (i = 2; i < x; i++) {

if (x % i == 0) {

isPrime = 0;

break;

}

}

if (isPrime == 1) {

printf("%d\n", x);

count++;

}

x++;

}

return 0;

}

```

这种方法通过从2开始逐个检查每个数是否为素数,直到找到20个素数为止。

方法二:筛法

```c

include

int isPrime(int n) {

if (n <= 1) {

return 0;

}

for (int i = 2; i * i <= n; i++) {

if (n % i == 0) {

return 0;

}

}

return 1;

}

int main() {

printf("100以内的素数有:\n");

for (int i = 2; i <= 100; i++) {

if (isPrime(i)) {

printf("%d ", i);

}

}

return 0;

}

```

这种方法使用筛法,从2开始,将所有小于等于100的数标记为素数,然后依次排除那些能被其他数整除的数。

方法三:埃拉托斯特尼筛法

```c

include

include

void sieveOfEratosthenes(int n) {

bool prime[n + 1];

for (int i = 0; i <= n; i++) {

prime[i] = true;

}

prime = prime = false;

for (int p = 2; p * p <= n; p++) {

if (prime[p] == true) {

for (int i = p * p; i <= n; i += p) {

prime[i] = false;

}

}

}

for (int p = 2; p <= n; p++) {

if (prime[p]) {

printf("%d ", p);

}

}

}

int main() {

int n = 100;

sieveOfEratosthenes(n);

return 0;

}

```

这种方法使用埃拉托斯特尼筛法,通过逐步排除能被其他数整除的数,最终得到所有小于等于100的素数。

总结

以上三种方法都可以用来求100以内的素数,具体选择哪种方法可以根据个人喜好和实际需求来决定。暴力枚举法简单直观,筛法和埃拉托斯特尼筛法效率更高。