方法一:暴力枚举法
```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以内的素数,具体选择哪种方法可以根据个人喜好和实际需求来决定。暴力枚举法简单直观,筛法和埃拉托斯特尼筛法效率更高。