马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2022-8-29 17:47 编辑
一星答案:
from math import *
#判断n是否为素数
def isprime(n):
if n <= 1:
return 0
m = int(sqrt(n))+1
for x in range(2,m):
if n%x == 0:
return 0
return 1
#利用递归分解n并打印质因数
def bprime(n):
if isprime(n):
print(n)
else:
x = 2
while x <= int(n/2):
if n%x == 0:
print(x)
return bprime(n/x)
x = x + 1
二星答案:
#利用递归
def fishc(n, lst=[]):
primes = [True] * int(n**0.5 + 1)
primes[0], primes[1] = False, False
for i, prime in enumerate(primes):
if prime:
for j in range(i * i, int(n**0.5 + 1), i):
primes[j] = False
primelist = [i for i, prime in enumerate(primes) if prime]
for p in primelist:
if n % p == 0:
return fishc(n / p, lst + [p])
return lst + [n]
三星答案:
基础语法:
算法讲解:
|