用c语言求1-1000内素数个数
时间: 2023-05-28 15:01:48 浏览: 132
```
#include <stdio.h>
int isPrime(int num) { // 判断num是否为素数
if(num <= 1) {
return 0;
}
for(int i = 2; i * i <= num; i++) {
if(num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int count = 0; // 计数器,记录素数的个数
for(int i = 1; i <= 1000; i++) {
if(isPrime(i)) {
count++;
}
}
printf("1-1000内素数个数为:%d\n", count);
return 0;
}
```
相关问题
用C语言求2-100的素数
以下是用 C 语言求解 2 到 100 的素数的程序:
```c
#include <stdio.h>
int main() {
int i, j, flag;
for (i = 2; i <= 100; i++) {
flag = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag == 1) {
printf("%d ", i);
}
}
return 0;
}
```
程序中使用了两层循环,外层循环从 2 循环到 100,内层循环从 2 到当前数的前一个数进行遍历,如果发现当前的数能被整除,则不是素数,将 flag 置为 0,并跳出内层循环;如果内层循环执行完毕后 flag 仍为 1,则是素数,将其输出。
c语言中求500-1000内的素数个数
在C语言中,求解500到1000之间的素数个数可以使用一种常见的算法,即埃拉托斯特尼筛法(Sieve of Eratosthenes)。这里是一个简单的示例代码:
```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 count_primes_in_range(int start, int end) {
bool prime[1001]; // 初始化一个布尔数组,表示每个数是否为素数
for (int i = 2; i <= end; i++)
prime[i] = true;
int count = 0;
for (int i = 2; i * i <= end; i++) {
if (prime[i]) {
for (int j = i * i; j <= end; j += i) {
prime[j] = false; // 如果i是j的因子,则标记j不是素数
}
}
}
for (int i = start; i <= end; i++) {
if (prime[i])
count++;
}
return count;
}
int main() {
int start = 500, end = 1000;
int result = count_primes_in_range(start, end);
printf("The number of primes between %d and %d is: %d\n", start, end, result);
return 0;
}
```
这个程序首先初始化一个布尔数组,然后通过循环去除所有非素数。最后计算并返回指定范围内的素数个数。
阅读全文
相关推荐







