Python实现正整数分解质因数操作示例
本文实例讲述了Python实现正整数分解质因数操作。分享给大家供大家参考,具体如下:
遇到一个Python编程练习题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
#!/usr/bin/envpython #-*-coding:utf-8-*- defdiv_func(n): result=[] whileTrue: foriinxrange(2,int(n**0.5)+1): ifn%i==0: result.append(i) n/=i break else: result.append(n) break return'*'.join(map(str,result)) num=raw_input('pleaseenteranumber(<1.0E+18):') try: int_num=int(num) ifint_num>10**18orint_num<0: raiseValueError() printdiv_func(int_num) exceptValueError: print'invalidnumber'
pleaseenteranumber(<1.0E+18):123124324324134334
2X293X313X362107X1853809
自己写的,完全没有参考网上其它人的算法。结果和大家都差不多。
另外还可以用递归方法:
deffactor(num): ifnum==1: return[] else: foriinrange(2,num+1): n,d=divmod(num,i) ifd==0: return[i]+factor(n) fortest_numin(299,1024,20,7): print(test_num,'->','*'.join(map(str,factor(test_num))))
299->13*23
1024->2*2*2*2*2*2*2*2*2*2
20->2*2*5
7->7
PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线