簡體   English   中英

如何檢查素因數列表以確定原始數字是否可以表示為 Python 中兩個 3 位數字的乘積?

[英]How do I check a list of prime factors to determine if the original number can be expressed the product of two 3-digit numbers, in Python?

我試圖確定一個 6 位數字是否可以表示為兩個三位數字的乘積。

我已將 6 位數字按從小到大的順序分解為素數列表,如果其中一個素數超過我感興趣的三位數大小,則使用 break 語句關閉進程。

我似乎無法制定一種算法,將素數重新組合成所有可能的配對因子。 我可以很容易地檢查每一對的三位數字。

我在 python 工作,如果這有什么不同的話。 如果有人可以偽代碼或以其他方式幫助概述邏輯步驟。

這只是更大問題的最后一步。 如果您對完整的上下文感興趣,那就是 Euler Project Problem #4... https://projecteuler.net/problem=4

正如@Ken YN 在評論中所說,對於大量因素,您最好循環遍歷所有 3 位數字。

在您的問題中,您似乎在問如何生成子集: I can't seem to formulate an algorithm that recombines the primes into all possible paired factors

我們可以使用二進制很容易地做到這一點:

如果您有一個(不一定是不同的)因子列表,您可以獲取長度,並以二進制表示形式生成從 0 到 2^length 的所有數字,確保保存前導 0。

然后,您可以循環遍歷每個字符串,如果一個字符為 0,則不包含在因子中,如果為 1,則包含。 然后,我們可以很容易地使用除法生成另一個因子。 接下來,我們很容易檢查長度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM