Python實(shí)現(xiàn)正整數(shù)分解質(zhì)因數(shù)操作示例
本文實(shí)例講述了Python實(shí)現(xiàn)正整數(shù)分解質(zhì)因數(shù)操作。分享給大家供大家參考,具體如下:
遇到一個(gè)Python編程練習(xí)題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
#!/usr/bin/env python # -*- coding: utf-8 -*- def div_func(n): result = [] while True: for i in xrange(2, int(n**0.5) + 1): if n % i == 0: result.append(i) n /= i break else: result.append(n) break return ' * '.join(map(str, result)) num = raw_input('please enter a number( < 1.0E+18):') try: int_num = int(num) if int_num > 10**18 or int_num < 0: raise ValueError() print div_func(int_num) except ValueError: print 'invalid number'
please enter a number( < 1.0E+18):123124324324134334
2 X 293 X 313 X 362107 X 1853809
自己寫的,完全沒(méi)有參考網(wǎng)上其它人的算法。結(jié)果和大家都差不多。
另外還可以用遞歸方法:
def factor(num): if num == 1: return [] else: for i in range(2, num+1): n, d = divmod(num, i) if d == 0: return [i] + factor(n) for test_num in (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:這里再為大家推薦幾款計(jì)算工具供大家進(jìn)一步參考借鑒:
在線分解質(zhì)因數(shù)計(jì)算器工具:
http://tools.jb51.net/jisuanqi/factor_calc
在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
torch.utils.data.DataLoader與迭代器轉(zhuǎn)換操作
這篇文章主要介紹了torch.utils.data.DataLoader與迭代器轉(zhuǎn)換操作,文章內(nèi)容接受非常詳細(xì),對(duì)正在學(xué)習(xí)或工作的你有一定的幫助,需要的朋友可以參考一下2022-02-02在Python程序和Flask框架中使用SQLAlchemy的教程
SQLAlchemy為Python程序與SQL語(yǔ)句之間建立了映射,是Python操作數(shù)據(jù)庫(kù)的利器,這里我們將來(lái)看在Python程序和Flask框架中使用SQLAlchemy的教程,需要的朋友可以參考下2016-06-06scipy稀疏數(shù)組coo_array的實(shí)現(xiàn)
本文主要介紹了scipy稀疏數(shù)組coo_array的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮
這篇文章主要介紹了在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Python創(chuàng)建類的方法及成員訪問(wèn)的相關(guān)知識(shí)總結(jié)
今天給大家?guī)?lái)的是關(guān)于Python基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Python類的方法及成員訪問(wèn)展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實(shí)例
這篇文章主要介紹了python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09python 通過(guò)xml獲取測(cè)試節(jié)點(diǎn)和屬性的實(shí)例
下面小編就為大家分享一篇python 通過(guò)xml獲取測(cè)試節(jié)點(diǎn)和屬性的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03詳解如何在python中讀寫和存儲(chǔ)matlab的數(shù)據(jù)文件(*.mat)
這篇文章主要介紹了詳解如何在python中讀寫和存儲(chǔ)matlab的數(shù)據(jù)文件(*.mat),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02Anaconda多環(huán)境多版本python配置操作方法
下面小編就為大家?guī)?lái)一篇Anaconda多環(huán)境多版本python配置操作方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09