🌟 介绍 🌟
在编程的世界里,素数是一个非常有趣的概念。素数是指只能被1和它本身整除的大于1的自然数。今天,我们将使用C语言来探索两种不同的方法来找出给定范围内的所有素数。🚀
🔍 方法一:朴素算法 🔍
第一种方法是使用最简单的朴素算法。这种方法通过检查每个数字是否能被小于它的任何数整除来确定其是否为素数。虽然简单,但在处理大范围的数字时效率较低。🔍
👩💻 示例代码:
```c
include
include
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
return 0;
}
```
🔍 方法二:埃拉托斯特尼筛法 🔍
第二种方法是使用著名的埃拉托斯特尼筛法。这种方法通过预先标记所有非素数来高效地找出所有素数。这种方法特别适用于需要找出大量连续素数的情况。📚
👩💻 示例代码:
```c
include
void sieveOfEratosthenes(int n) {
bool prime[n+1];
for (int i = 0; i <= n; i++) prime[i] = true;
for (int p = 2; p p <= n; p++) {
if (prime[p]) {
for (int i = p p; i <= n; i += p) {
prime[i] = false;
}
}
}
for (int i = 2; i <= n; i++) {
if (prime[i]) {
printf("%d ", i);
}
}
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
sieveOfEratosthenes(n);
return 0;
}
```
这两种方法各有千秋,选择哪一种取决于你的具体需求和计算资源。希望这些示例代码能够帮助你更好地理解和应用C语言中的素数查找算法!💡