創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),霸州網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:霸州等地區(qū)。霸州做網(wǎng)站價(jià)格咨詢:18982081108這篇文章主要介紹了python求因數(shù)的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
要想做到python語言求因數(shù)方法,首先要明白其中的原理:
1、對(duì)由123456789這九個(gè)數(shù)字組成的9位數(shù)進(jìn)行分解質(zhì)因數(shù)。
2、123457698=2x3x3x7x13x23x29x113,所以他的大值因數(shù)是113。
3、總共有362880種可能,從中找出大值因數(shù)中最小的數(shù)字和大值因數(shù)中大的數(shù)。
好了,下面來看看python語言求因數(shù)方法的實(shí)現(xiàn)源碼:
#coding:utf-8 import math def generator(count, s): if count == 1: for i in s: yield i else: for i in s: _ = set(s) _.remove(i) for _ in generator(count-1, _): yield _ * 10 + i primes = [2, 3] def prime(idx): if idx < len(primes): return primes[idx] new = primes[-1]+2 while True: for i in primes: if new % i == 0: break else: primes.append(new) break new += 2 return prime(idx) def probe(number, idx, value=0): if value > number: return value p = prime(idx) sqrt = math.sqrt(number) while number % p != 0 and sqrt >= p: idx += 1 p = prime(idx) if sqrt < p: return number return probe(number/p, idx, max(p, value)) if __name__ == '__main__': _min = 10000000000, 10000000000 _max = 0, 0 for number in generator(9, set(range(1, 10))): maxfactor = probe(number, 0) if maxfactor < _min[0]: _min = maxfactor, [number] elif maxfactor == _min[0]: _min[1].append(number) if maxfactor > _max[0]: _max = maxfactor, [number] elif maxfactor == _max[0]: _max[1].append(number) print _min print _max
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python求因數(shù)的方法內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!