Primes in numbers _ codewars python 解法

在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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值