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