亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(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)文章:
主站蜘蛛池模板: 久久精品国产91久久综合麻豆自制 | 欧美二级在线观看免费 | 国产欧美日韩高清专区手机版 | 欧美99视频 | 亚洲无限看| 久久久91精品国产一区二区 | 久久久一本精品99久久精品66 | 黄色福利站 | 久久3| 87精品福利视频在线观看 | 艳女伦交一级毛片 | 国产精品亚洲综合天堂夜夜 | 久草国产在线观看 | 久久久久久久久国产 | 亚洲三级小视频 | 欧美精品成人一区二区在线观看 | 视频在线一区二区 | 538在线视频二三区视视频 | 国产91无套剧情在线播放 | 成年女人看片免费视频播放器 | 国产一区在线播放 | 国产欧美在线观看不卡一 | 国产成人91一区二区三区 | 玖玖这里只有精品 | 欧美高清在线精品一区二区不卡 | 亚洲国产成人久久综合碰 | www亚洲成人 | 久久国产成人午夜aⅴ影院 久久国产成人亚洲精品影院老金 | 欧美不卡一区 | 成年人免费观看的视频 | 国产大陆亚洲精品国产 | 国产视频久久 | 国产精品a人片在线观看 | 亚洲美女视频在线 | 免费国产午夜高清在线视频 | 久久久久久久国产视频 | 国产午夜精品久久久久小说 | 免费黄色美女视频 | 国产成人综合精品一区 | 国产高清自拍一区 | 国产精品免费视频一区 |