久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

我有一個(gè)Python列出了一些主要因素。我如何(以Python方式)找到所有因素?

瀏覽:4日期:2022-08-07 09:42:32
如何解決我有一個(gè)Python列出了一些主要因素。我如何(以Python方式)找到所有因素??

相反,指數(shù)清單,考慮簡(jiǎn)單地 重復(fù) 利用的次數(shù)每一個(gè)素因子它 是一個(gè)因素。然后,處理生成primefactors的帶有重復(fù)的列表,itertools.combinations即可滿足您的需要-您只需要將長(zhǎng)度2 len(primefactors) - 1的組合包含在所包含的項(xiàng)目中(只有一個(gè)的組合是主要因素,所有其中一個(gè)將是原始編號(hào)-如果您也想要這些編號(hào),請(qǐng)使用range(1, len(primefactors) + 1)而不是range(2,len(primefactors))我的主要建議所使用的編號(hào))。

結(jié)果中將存在重復(fù)(例如,6將出現(xiàn)的結(jié)果是的兩倍12,因?yàn)楹笳遬rimefactors將是[2, 2,3]),并且當(dāng)然可以按照通常的方式(sorted(set(results))例如)清除它們。

要計(jì)算primefactors給定listofAllPrimes,請(qǐng)考慮以下示例:

def getprimefactors(n): primefactors = [] primeind = 0 p = listofAllPrimes[primeind] while p <= n:if n % p == 0: primefactors.append(p) n //= pelse: primeind += 1 p = listofAllPrimes[primeind] return primefactors解決方法

我正在研究需要對(duì)整數(shù)進(jìn)行因子分解的Euler項(xiàng)目。我可以列出所有給定數(shù)字的質(zhì)數(shù)的列表。算術(shù)基本定理意味著我可以使用此列表來(lái)得出數(shù)字的 每個(gè) 因子。

我當(dāng)前的計(jì)劃是將基本質(zhì)數(shù)列表中的每個(gè)數(shù)字取整并提高其冪,直到找到每個(gè)質(zhì)數(shù)的最大指數(shù)不再是整數(shù)因子為止。然后,我將乘以素?cái)?shù)對(duì)的所有可能組合。

例如,對(duì)于180:

Given: prime factors of 180: [2,3,5]Find maximum exponent of each factor: 180 / 2^1 = 90 180 / 2^2 = 45 180 / 2^3 = 22.5 - not an integer,so 2 is the maximum exponent of 2. 180 / 3^1 = 60 180 / 3^2 = 20 180 / 3^3 = 6.6 - not an integer,so 2 is the maximum exponent of 3. 180 / 5^1 = 36 180 / 5^2 = 7.2 - not an integer,so 1 is the maximum exponent of 5.

接下來(lái),對(duì)所有這些組合進(jìn)行最大冪運(yùn)算以得到因子:

2^0 * 3^0 * 5^0 = 1 2^1 * 3^0 * 5^0 = 2 2^2 * 3^0 * 5^0 = 4 2^0 * 3^1 * 5^0 = 3 2^1 * 3^1 * 5^0 = 6 2^2 * 3^1 * 5^0 = 12 2^0 * 3^2 * 5^0 = 9 2^1 * 3^2 * 5^0 = 18 2^2 * 3^2 * 5^0 = 36 2^0 * 3^0 * 5^1 = 5 2^1 * 3^0 * 5^1 = 10 2^2 * 3^0 * 5^1 = 20 2^0 * 3^1 * 5^1 = 15 2^1 * 3^1 * 5^1 = 30 2^2 * 3^1 * 5^1 = 60 2^0 * 3^2 * 5^1 = 45 2^1 * 3^2 * 5^1 = 90 2^2 * 3^2 * 5^1 = 180

因此,因子列表= [1、2、3、4、5、6、9、10、12、15、18、20、30、36、45、60、90、180]

這是我到目前為止的代碼。有兩個(gè)問(wèn)題:首先,我認(rèn)為這完全不是Python語(yǔ)言。我想解決這個(gè)問(wèn)題。其次,我 真的沒(méi)有Python方式可以完成第二步。出于恥辱,我使您擺脫了荒謬的循環(huán)。

n是我們要分解的數(shù)字。listOfAllPrimes是不超過(guò)1000萬(wàn)個(gè)素?cái)?shù)的預(yù)先計(jì)算的列表。

def getListOfFactors(n,listOfAllPrimes): maxFactor = int(math.sqrt(n)) + 1 eligiblePrimes = filter(lambda x: x <= maxFactor,listOfAllPrimes) listOfBasePrimes = filter(lambda x: n % x ==0,eligiblePrimes) listOfExponents = [] #(do I have to do this?) for x in listOfBasePrimes:y = 1while (x**(y+1)) % n == 0: y += 1listOfExponents.append(y)

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产一区二区三区四区在线观看 | 日韩乱码中文字幕 | 国产精品成人观看视频国产奇米 | 在线精品亚洲 | 久久三区 | 在线看片成人 | 免费观看av毛片 | 久久人人爽人人爽人人片av软件 | 久久久精品综合 | 精品一区在线 | 久久九| 日韩精品在线观看视频 | 久操国产 | 亚洲嫩草 | 久久久久国产一区二区三区 | 在线精品观看 | 秋霞在线一区 | 国产亚洲一区在线 | 永久看片 | 可以看黄的视频 | 国产精品久久一区二区三区 | 国产精品丝袜视频 | 波多野结衣 一区二区三区 精品精品久久 | 男人天堂网av | 国产一级特黄 | 免费一区二区三区 | 亚洲伦理在线 | 99re在线 | 亚洲在线 | 久久久香蕉 | 久久精品无码一区二区三区 | 中文字幕在线观看1 | 狠狠干狠狠干 | 欧美狠狠操 | 久久夜色精品国产 | 伊人伊人伊人 | 色婷婷av久久久久久久 | 夜夜夜久久久 | 成人在线亚洲 | 国产精品国产三级国产a | 午夜影院网站 |