用c语言求出100-200之间所有的素数
时间: 2023-01-31 07:01:51 浏览: 144
可以使用类似于埃氏筛法的方式来求出100-200之间的素数。
具体来说,可以用一个布尔数组来标记每个数是否是素数,然后从2开始遍历每个数,如果它是素数就将它的倍数都标记为合数,最后输出所有没有被标记的数即可。
代码示例如下:
```c
#include <stdio.h>
#define N 200
int main(void) {
// 标记数组,prime[i]为true表示i是素数,否则为合数
bool prime[N + 1];
for (int i = 2; i <= N; i++) {
prime[i] = true;
}
// 埃氏筛
for (int i = 2; i <= N; i++) {
// 如果i是素数,则将它的倍数都标记为合数
if (prime[i]) {
for (int j = 2 * i; j <= N; j += i) {
prime[j] = false;
}
}
}
// 输出100-200之间的素数
for (int i = 100; i <= N; i++) {
if (prime[i]) {
printf("%d\n", i);
}
}
return 0;
}
```
相关问题
用c语言输出100-200之间所有的素数。
以下是使用C语言输出100-200之间所有素数的代码:
```c
#include <stdio.h>
#include <stdbool.h>
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;
}
int main() {
printf("100-200之间的素数有:\n");
for (int i = 100; i <= 200; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
该代码中,使用函数`is_prime()`判断一个数是否为素数。如果该数小于等于1,则不是素数;如果该数可以被2到该数平方根之间的任何一个数整除,则不是素数;否则就是素数。在主函数中,循环遍历100到200之间的所有整数,如果某个数是素数,则将其输出。
用C语言输出100-200之间的所有素数
在C语言中,我们可以编写一个函数来判断一个数是否为素数,然后遍历100到200之间的每个数字,检查它们是否为素数,并打印出来。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断是否为素数的辅助函数
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到200之间的所有素数
void print_primes_in_range(int start, int end) {
for (int i = start; i <= end; i++) {
if (is_prime(i))
printf("%d ", i);
}
printf("\n");
}
int main() {
print_primes_in_range(100, 200);
return 0;
}
```
在这个程序中,`is_prime()`函数用于检查一个整数是否为素数,`print_primes_in_range()`函数则遍历指定范围内的数并调用`is_prime()`来确定是否打印。
阅读全文