用c语言求出100到200之间的全部素数
时间: 2024-10-14 10:15:00 浏览: 98
在C语言中,我们可以使用经典的“筛法”(Sieve of Eratosthenes)来找出100到200之间的所有素数。下面是一个简单的示例代码:
```c
#include <stdio.h>
// 定义判断是否为素数的函数
int is_prime(int n) {
if (n <= 1)
return 0;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0)
return 0; // 如果能被整除,那么不是素数
}
return 1; // 否则,它是素数
}
// 筛选出指定范围内的素数
void find_primes_in_range(int start, int end) {
for (int i = start; i <= end; i++) {
if (is_prime(i))
printf("%d ", i);
}
}
int main() {
int start = 100, end = 200;
printf("素数列表(%d 到 %d):\n", start, end);
find_primes_in_range(start, end);
return 0;
}
```
当你运行这个程序时,它会打印出100到200之间所有的素数。
相关问题
用c语言求出100-200之间所有的素数
可以使用类似于埃氏筛法的方式来求出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语言程序:
```
#include <stdio.h>
int main()
{
int i, j;
int sum = 0; // 素数和
for (i = 100; i <= 200; i++) // 判断100~200之间的数是否为素数
{
for (j = 2; j < i; j++)
{
if (i % j == 0) // i能整除j,不是素数
{
break;
}
}
if (j == i) // i不能整除任何数,是素数
{
sum += i;
}
}
printf("100~200之间全部素数的和为:%d", sum);
return 0;
}
```
代码解析:
1. 双重循环,外层循环控制循环次数是从100到200,内层循环用于判断当前数是否为素数;
2. 对于每个待判断的数i,内层循环从2到i-1,如果发现i能被任何一个数j整除,则说明i不是素数,退出内层循环;
3. 如果内层循环循环完毕也没有退出,说明i是素数,将i加入素数和sum中;
4. 最后输出sum的值即可。
阅读全文