[算法]分解因数

Posted wilderness

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[算法]分解因数相关的知识,希望对你有一定的参考价值。

将101到200间的数分解因数

log = {}

def prime_log(num):
    if num < 3:
        return 0
    flags = [True] * num 
    flags[0], flags[1] = False, False
    for i in range(2, int(num**0.5+1)):
        if flags[i]:
            flags[i*i:num:i] = [False]*len(flags[i*i:num:i])
    return flags

primes = prime_log(201)
# print primes

def parse_int(num):
    if num in log:
        return log[num]
    if primes[num]:
        log[num] = [num]
        return [num]
    res = []
    for i in range(2, num/2+1):
        if not num%i:
            if primes[i]:
                res.append(i)
                e = log[num/i] if num/i in log and len(log[num/i]) else parse_int(num/i)
                for j in e:
                    res.append(j)
                break
    for i in res:
        if num in log:
            log[num].append(i)
        else:
            log[num] = []
            log[num].append(i)
    return res



def main():
    for i in range(101, 200):
        parse_int(i)
        if not len(log[i]):
            print str(i)+={}\n.format(i)
        else:
            print *.join(map(str, log[i]))+={}\n.format(i)

if __name__ == __main__:
    main()

# print parse_int(108)
# # print log
            



                

 

以上是关于[算法]分解因数的主要内容,如果未能解决你的问题,请参考以下文章

算法---分解质因数

算法---分解质因数

经典算法详解(12)分解质因数

[算法]分解因数

算法--因数分解

(蓝桥杯)试题 算法训练 分解质因数