求n到m之间的素数并输出
时间: 2023-10-30 08:02:30 浏览: 65
以下是Python代码实现:
```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
n = int(input("请输入n:"))
m = int(input("请输入m:"))
for i in range(n, m+1):
if is_prime(i):
print(i, end=" ")
```
首先定义一个判断素数的函数 `is_prime(n)`,然后输入n和m的值,然后遍历n到m之间的每个数,判断是否为素数,是的话输出。
相关问题
C语言求n到m之间的素数并输出
```
#include <stdio.h>
int is_prime(int n);
int main()
{
int n, m;
printf("请输入n和m:\n");
scanf("%d%d", &n, &m);
printf("%d到%d之间的素数有:\n", n, m);
for(int i=n; i<=m; i++)
{
if(is_prime(i))
{
printf("%d ", i);
}
}
return 0;
}
int is_prime(int n)
{
if(n < 2)
{
return 0;
}
for(int i=2; i*i<=n; i++)
{
if(n % i == 0)
{
return 0;
}
}
return 1;
}
```
解释:
- `is_prime`函数判断一个数是否为素数,如果是返回1,否则返回0。
- 在`main`函数中,从n到m遍历,对于每一个数,调用`is_prime`函数判断是否为素数,如果是,输出该数。
输出n到m之间的素数,python
在Python中,你可以使用Sieve of Eratosthenes算法来生成指定范围内的所有素数。这是一种古老而有效的找到一定范围内所有质数的方法。下面是一个简单的函数实现:
```python
def sieve_of_eratosthenes(n, m):
primes = [True] * (m + 1) # 初始化一个布尔列表,假设0到m都是质数
primes[0], primes[1] = False, False # 0和1不是质数
for num in range(2, int(m**0.5) + 1): # 只需要检查到根号m
if primes[num]:
for multiple in range(num*num, m+1, num): # 把num的倍数标记为非质数
primes[multiple] = False
for prime in range(n, m + 1): # 打印n到m之间的质数
if primes[prime]:
print(prime)
# 调用函数
sieve_of_eratosthenes(10, 30)
```
阅读全文