在codewars中,有一个质因数分解题:
Primes in numbers
https://www.codewars.com/kata/54d512e62a5e54c96200019e/train/python
code:
运行OUT Of Time
欢迎优化
def primeFactors(n):
...
primelist = []
for x in range(2,n):
if prime(x) == True:
primelist.append(x)
print(primelist)
#for y in enumerate(primelist):
#print(y)
dict = {}
for p in primelist:
dict[p] = 0
print(dict)
dict_cnt(dict,n)
str = ''
print(dict)
for x in dict:
if dict[x]> 1:
#print(x)
#print(type(x))
str += '(%s**%s)' %(x,dict[x])
elif dict[x] == 1:
str += '(%s)' % (x)
print(str)
return str
def prime(n):
for i in range(2,n):
if n % i == 0:
return False
else:
return True
def dict_cnt(dict,n):
for k in dict:
#print(k)
if n % k == 0:
dict[k] += 1
return dict_cnt(dict, n / k)
return dict
primeFactors(7775460)