用C语言求出100~1000内所有素数
时间: 2023-09-24 13:03:31 浏览: 224
好的,下面是代码实现:
```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;
}
int main() {
for (int i = 100; i <= 1000; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
首先,我们需要一个判断一个数是否为素数的函数 `is_prime`,它的实现方式是从 2 开始枚举到 $\sqrt{n}$,如果在该范围内存在一个数能够整除 $n$,则 $n$ 不是素数,否则 $n$ 是素数。
接着,在主函数中,我们从 100 开始枚举到 1000,对于每个数,如果它是素数,则输出它。
最后,记得换行。
相关问题
使用C语言求出1~n之间的所有素数之和
好的,我可以为您提供使用C语言求出1~n之间的所有素数之和的代码。
以下是使用C语言求出1~n之间的所有素数之和的代码:
```c
#include <stdio.h>
int is_prime(int num);
int main() {
int n, i, sum = 0;
printf("Enter a positive integer n: ");
scanf("%d", &n);
for (i = 2; i <= n; i++) {
if (is_prime(i))
sum += i;
}
printf("The sum of primes between 1 and %d is %d\n", n, sum);
return 0;
}
int is_prime(int num) {
int i;
if (num < 2)
return 0;
for (i = 2; i*i <= num; i++) {
if (num % i == 0)
return 0;
}
return 1;
}
```
其中,`is_prime`函数用于判断一个数是否为素数,如果是,则返回1,否则返回0。在`main`函数中,首先要求用户输入一个正整数n,然后使用循环遍历1~n之间的所有数,对于每个数,如果它是素数,则累加到`sum`变量中。最后输出1~n之间的所有素数之和。
希望能帮助到您!
c语言编程求1~100的所有素数
以下是两种C语言编程求1~100的所有素数的例子:
1. 暴力枚举法
```c
#include <stdio.h>
int main() {
int i;
for(i = 2; i <= 100; i++) { // 1不是素数
int j = 0;
for(j = 2; j <= i; j++) { // 从2~i取余,如果余数为0则不是素数,跳出循环
if(i % j == 0) {
break;
}
}
if(i == j) { // 如果j=i,则i是素数
printf("%d ", i);
}
}
return 0;
}
```
2. 优化后的算法
```c
#include <stdio.h>
#include <math.h>
int main() {
int i = 0;
for(i = 2; i <= 100; i++) {
int j = 0;
for(j = 2; j <= sqrt(i * 1.0); j++) { // 只需判断2~sqrt(i)之间的数是否能整除i
if(i % j == 0) {
break;
}
}
if(j > sqrt(i * 1.0)) { // 如果j>sqrt(i),则i是素数
printf("%d ", i);
}
}
return 0;
}
```
阅读全文