Primes in numbers _codwars
欢迎大佬解答。
代码测试pass, 但是报:
STDERR
Traceback (most recent call last):
File “main.py”, line 4, in
test.assert_equals(primeFactors(7919), “(7919)”)
File “/home/codewarrior/solution.py”, line 14, in primeFactors
fun(dict, n)
File “/home/codewarrior/solution.py”, line 5, in fun
dict[x] += 1
KeyError: 7919
我的代码:
def fun(dict, n):
for x in range(2,n+1):
if n % x == 0:
#try:
dict[x] += 1
return fun(dict , n // x)
#except KeyError as e:
print(e)
def primeFactors(n):
dict = {}
for i in range(2,n):
if n % i == 0:
dict[i] = 0
fun(dict, n)
#print(dict)
s1 = ""
for j in dict:
if dict[j] > 1:
# print(x)
# print(type(x))
s1 += '(%s**%s)' % (j, dict[j])
elif dict[j] == 1:
s1 += '(%s)' % (j)
#print(s1)
return s1