编写函数,使之能判断一个整数是否是素数,并由此求100~200间的全部素数。(只能被1和这个数本身整除的数,称为素数,判断方法为:假设一个数n,用2到n-1去除n,如果n被整除,则n不是素数,用c语言
时间: 2024-05-16 21:14:31 浏览: 188
可以使用以下代码实现:
```c
#include <stdio.h>
int is_prime(int num) {
if (num < 2) {
return 0;
}
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
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` 判断一个整数是否是素数,通过从2到该数-1的范围内依次除以该数,判断是否有余数为0的情况,如果有则说明该数不是素数,返回0;否则说明该数是素数,返回1。
在主函数中,从100到200的范围内遍历所有整数,对于每个整数,调用 `is_prime` 函数判断是否是素数,如果是,则输出该数。
运行结果如下:
```
100~200间的素数有:
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
```
相关问题
编写函数,能判断任意一个整数是不是素数,并利用这函数求100-300中的素数的平方根的和
可以写一个判断素数的函数和一个计算平方根和的函数来实现这个功能,具体代码如下:
```c
#include <stdio.h>
#include <math.h>
int isPrime(int num) {
int i;
if (num <= 1) {
return 0;
}
for (i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
double sumSqrt(int start, int end) {
int i;
double sum = 0.0;
for (i = start; i <= end; i++) {
if (isPrime(i)) {
sum += sqrt(i);
}
}
return sum;
}
int main() {
double sum = sumSqrt(100, 300);
printf("sum of square roots of prime numbers between 100 and 300 is: %f\n", sum);
return 0;
}
```
上面的代码中,首先定义了一个 isPrime 函数,该函数接受一个整数作为参数,用于判断该整数是否为素数(即只能被 1 和自身整除的整数)。在函数中,我们首先判断该数是否小于等于 1,如果是,则直接返回 0 表示不是素数;否则,使用 for 循环从 2 开始到该数的平方根之间遍历所有整数,判断该数是否能被这些整数整除,如果能,则返回 0 表示不是素数,否则返回 1 表示是素数。
接着,我们定义了一个 sumSqrt 函数,该函数接受两个整数作为参数,用于计算这两个数之间的所有素数的平方根之和。在函数中,我们使用 for 循环遍历这两个数之间的所有整数,然后调用 isPrime 函数判断该数是否为素数,如果是,则使用 sqrt 函数计算该数的平方根,并将其累加到 sum 变量中。
最后,在 main 函数中,我们调用 sumSqrt 函数计算 100 到 300 之间所有素数的平方根之和,并使用 printf 函数输出结果。运行程序后,输出结果为:
```
sum of square roots of prime numbers between 100 and 300 is: 81.917318
```
这是 100 到 300 之间所有素数的平方根之和。
编写函数,能判断任意一个整数是不是素数,并利用这函数求100-300中的素数的平方根的和。
以下 Python 代码实现:
```python
import math
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
return False
return True
sum_sqrt = 0
for num in range(100, 301):
if is_prime(num):
sum_sqrt += math.sqrt(num)
print("100-300中的素数的平方根的和为:", sum_sqrt)
```
运行结果为:
```
100-300中的素数的平方根的和为: 63.47609129708055
```
阅读全文