循环结构程序设计---素数问题:输入正整数n,m,求不大于n的m个互不相同的最大的素数。
时间: 2023-05-18 21:02:29 浏览: 215
以下是一个可能的解决方案:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def find_largest_primes(n, m):
primes = []
for i in range(n, 1, -1):
if is_prime(i):
primes.append(i)
if len(primes) == m:
break
return primes
n = int(input("请输入正整数n:"))
m = int(input("请输入要求的素数个数m:"))
primes = find_largest_primes(n, m)
print("不大于n的{}个互不相同的最大的素数是:{}".format(m, primes))
```
这个程序首先定义了一个函数 `is_prime`,用于判断一个数是否为素数。然后定义了另一个函数 `find_largest_primes`,用于找到不大于 `n` 的 `m` 个互不相同的最大的素数。这个函数从 `n` 开始倒序遍历每个数,如果当前数是素数,则将其加入到素数列表中,直到找到 `m` 个素数为止。最后将找到的素数列表输出即可。
注意:这个程序只是一个可能的解决方案,不一定是最优的,也可能存在一些潜在的问题。
阅读全文