我試圖確定一個 6 位數是否可以表示為兩個三位數的乘積。
我已經按照從最小到最大的順序將 6 位數字分解為它的素數串列,如果其中一個素數超過我感興趣的三位數大小,則使用 break 陳述句關閉該程序。
我似乎無法制定一個演算法,將質數重新組合成所有可能的配對因子。我可以很容易地檢查每一對的三位數字。
如果這有所作為,我正在使用 python 作業。如果有人可以偽代碼或以其他方式幫助概述邏輯步驟。
這只是更大問題的最后一步。如果您對完整背景關系感興趣,那就是歐拉專案問題 #4... https://projecteuler.net/problem=4
uj5u.com熱心網友回復:
對于非常多的因素,正如@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,則包含在因子中。然后,我們可以使用除法輕松生成另一個因子。接下來,我們輕松檢查長度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387551.html
上一篇:反轉矢量位置變換
