用c语言编写程序,用筛选法求出100之内的所有素数。
时间: 2024-05-09 16:17:57 浏览: 180
您好!那么我可以回答您的第一个问题:使用C语言编写程序,通过筛选法求出100以内的所有素数。筛选法,也称为埃氏筛法,是一种简单而有效的素数筛法。您可以使用以下代码实现此功能:
```c
#include <stdio.h>
#include <math.h>
int main() {
int prime[101]; // 用来记录素数的数组
int i, j;
for (i = 2; i <= 100; i++) {
prime[i] = 1; // 先将所有数标记为素数
}
for (i = 2; i <= sqrt(100); i++) {
if (prime[i]) { // 如果i是素数
for (j = i * i; j <= 100; j += i) {
prime[j] = 0; // 标记i的倍数为非素数
}
}
}
printf("100以内的素数有:");
for (i = 2; i <= 100; i++) {
if (prime[i]) {
printf("%d ", i); // 输出所有素数
}
}
printf("\n");
return 0;
}
```
希望能对您有所帮助!如果您有其他问题,可以随时问我哦~
相关问题
编写一个C语言程序,用筛选法求出100之内的所有素数。
好的,以下是求100以内的所有素数的C语言程序:
#include <stdio.h>
int main() {
int isPrime[101]; //标记数组,isPrime[i]=1表示i是素数
int i, j;
//初始化数组
for (i = 2; i <= 100; i++) {
isPrime[i] = 1;
}
//筛选出素数
for (i = 2; i <= 100; i++) {
if (isPrime[i]) {
//将i的倍数标记为非素数
for (j = 2 * i; j <= 100; j += i) {
isPrime[j] = 0;
}
}
}
//输出所有素数
for (i = 2; i <= 100; i++) {
if (isPrime[i]) {
printf("%d ", i);
}
}
return 0;
}
希望可以帮到您!现在,请问您还有其他问题吗?
用c语言编写,用筛选法求100之内的素数
在C语言中,我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出100以内的素数。这是一种古老的算法,它通过不断排除合数(非素数)来找到所有的素数。以下是简单的C语言代码实现:
```c
#include <stdio.h>
void sieve_of_eratosthenes(int limit) {
// 创建一个布尔数组,初始所有元素设为真
int prime[limit+1] = {1}; // 素数数组,0和1不是素数
for (int i = 2; i * i <= limit; i++) {
// 如果prime[i]未被标记为合数,则说明i是素数
if (prime[i]) {
// 将i的所有倍数标记为合数
for (int j = i * i; j <= limit; j += i)
prime[j] = 0;
}
}
// 打印出1到limit范围内的素数
printf("素数列表:\n");
for (int i = 2; i <= limit; i++)
if (prime[i])
printf("%d ", i);
}
int main() {
int limit = 100;
sieve_of_eratosthenes(limit);
return 0;
}
```
当运行这个程序时,它会打印出100以内的所有素数。
阅读全文
相关推荐













