输入两个正整数m和n(m>=1, n<=500),统计并输出m和n之间的素数的个数以及这些素数的和。要求定义并调用函数prime(m)判断m是否为素数。c
时间: 2024-02-01 10:16:16 浏览: 33
```c
#include <stdio.h>
int prime(int m) {
int i;
if (m < 2) {
return 0;
}
for (i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n, i, cnt = 0, sum = 0;
scanf("%d%d", &m, &n);
for (i = m; i <= n; i++) {
if (prime(i)) {
cnt++;
sum += i;
}
}
printf("%d %d", cnt, sum);
return 0;
}
```
相关问题
输入两个正整数m和n,统计并输出m~n之间素数的个数
以下是Python代码实现:
```python
m = int(input("请输入m:"))
n = int(input("请输入n:"))
count = 0 # 计数器,用于记录素数个数
for i in range(m, n+1): # 遍历m~n之间的数
if i < 2: # 小于2的数不是素数
continue
is_prime = True # 标记当前数是否为素数
for j in range(2, int(i**0.5)+1): # 判断i是否为素数
if i % j == 0:
is_prime = False
break
if is_prime: # 如果i是素数,则计数器加1
count += 1
print("m~n之间素数的个数为:", count)
```
解析:
1. 首先输入m和n,使用int()函数将其转换为整数类型。
2. 初始化计数器count为0。
3. 通过for循环遍历m~n之间的数,当i小于2时,直接跳过。
4. 对于每个i,使用is_prime变量标记其是否为素数,初始值为True。
5. 再通过for循环遍历2~i的平方根之间的数,判断i是否能够被整除,如果能够被整除,则说明i不是素数,将is_prime标记为False,并立即跳出循环。
6. 如果is_prime为True,则说明i是素数,将计数器count加1。
7. 最后输出m~n之间素数的个数。
输入两个正整数m和n,统计并输出m~n之间素数的个数。
使用一个函数is_prime(n),判断一个数n是否是素数。若n为素数,则返回True,否则返回False。
代码实现如下:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
m = int(input("请输入m:"))
n = int(input("请输入n:"))
count = 0
for i in range(m, n+1):
if is_prime(i):
count += 1
print("m~n之间素数的个数为:", count)
```
运行结果:
```
请输入m:5
请输入n:30
m~n之间素数的个数为: 10
```