请设计3开始按升序找到素数的程序,找100个素数,并从大到小的数字以逗号分隔值的顺序输出。
但是,该程序必须满足以下条件。
·不要使用For,While等循环语法。 (改为使用递归处理)
·加快速度。 (如多线程)### 题目描述
请设计3开始按升序找到素数的程序,找100个素数,并从大到小的数字以逗号分隔值的顺序输出。
但是,该程序必须满足以下条件。
·不要使用For,While等循环语法。 (改为使用递归处理)
·加快速度。 (如多线程)### 题目描述
res = [3]
def isprime(n, i):
if i == len(res):
return True
elif n % res[i] == 0:
return False
else:
return isprime(n, i + 1)
def find(cur):
if len(res) < 100:
if isprime(cur, 0):
res.append(cur)
cur += 2
find(cur)
find(5)
print(res)
时间复杂度O(nk), 其中k=100,n为P(k)/2第k个质数,不支持并发
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.6k 阅读✓ 已解决