用C语言写一段程序用for输出100以内的素数
时间: 2023-05-11 22:02:17 浏览: 172
以下是用C语言写的程序,使用for循环输出100以内的素数:
```c
#include <stdio.h>
int main() {
int i, j, is_prime;
for (i = 2; i <= 100; i++) {
is_prime = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime) {
printf("%d ", i);
}
}
return 0;
}
```
这个程序使用了两个嵌套的for循环,外层循环从2到100遍历每一个数,内层循环从2到当前数之前的数,判断当前数是否能被整除,如果能被整除,则说明当前数不是素数,将is_prime标记为0,跳出内层循环。如果内层循环结束后is_prime仍然为1,则说明当前数是素数,输出它。
相关问题
用c语言输出100以内的素数
在C语言中,输出100以内的素数可以通过一个常见的算法,称为“埃拉托斯特尼筛法”(Sieve of Eratosthenes)。这个算法通过创建一个布尔数组,标记每个数字是否为素数。以下是简单的代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX 100
// 判断一个数是否为素数
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
// 输出100以内的所有素数
void print_primes() {
bool prime[MAX + 1];
memset(prime, true, sizeof(prime)); // 初始化所有数字为素数
for (int p = 2; p * p <= MAX; p++) {
// 如果prime[p]非零,则p是素数
if (prime[p]) {
printf("%d ", p);
// 将p的所有倍数标记为合数
for (int i = p * p; i <= MAX; i += p)
prime[i] = false;
}
}
}
int main() {
print_primes();
return 0;
}
```
这段代码首先初始化一个布尔数组,然后从2开始遍历,将所有的因子标记为非素数。最后打印出所有未标记的数字,即素数。
输出100以内所有素数C语言
在C语言中,输出100以内所有素数的一个简单方法是使用嵌套循环来检查每个数是否为素数。素数定义为只能被1和它本身整除的数,且大于1。以下是一个实现此功能的C语言代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
int main() {
int i, j;
bool isPrime;
printf("100以内的所有素数:\n");
for (i = 2; i <= 100; i++) { // 从2开始到100
isPrime = true; // 假设当前数字是素数
for (j = 2; j * j <= i; j++) { // 只需检查到sqrt(i)
if (i % j == 0) { // 如果i能被j整除,则不是素数
isPrime = false; // 标记当前数字不是素数
break; // 跳出循环
}
}
if (isPrime) { // 如果是素数,则打印
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
这段代码首先定义了一个布尔变量`isPrime`来标记一个数是否为素数。外层循环遍历从2到100的所有整数,内层循环用于检查当前整数是否只能被1和它本身整除。如果内层循环结束后`isPrime`仍为`true`,则说明当前数字是素数,并将其打印出来。
阅读全文
相关推荐














