試圖解決這個問題:溢出錯誤的Python模塊化立方體
對於正數n,定義S(n)作爲整數x的針對
1 < x < n
和x^3 ≡ 1 mod n
總和。當
n=91
時,x有8個可能的值,即:9,16,22,29,53,74,79,81。因此,S(91)=9+16+22+29+53+74+79+81=363
。查找S(13082761331670030)。
當然,我的代碼適用於S(91)
並試圖找到S(13082761331670030)
當我得到兩個不同的錯誤。
這裏是我的代碼:
def modcube(n):
results = []
for k in range(1,n):
if k**3%n==1:
results.append(k)
return results
這將產生Overflow error: range has too many items.
當我嘗試使用「的xrange」而不是「範圍」我得到一個錯誤,說明蟒INT太大,轉換爲C長。我也嘗試過其他幾件事,但都沒有成功。
任何人都可以指向正確的方向,而不告訴我如何解決它?
請勿擾亂。我已經呆了兩天了,我的下一個選擇是嘗試在Java中實現這一點,因爲我是Python新手。
這可能會有幫助。您遇到的錯誤是數字太大而無法存儲在靜態類型中的結果。 http://stackoverflow.com/questions/1386604/handling-big-numbers-in-code。希望這是你正在尋找的細節水平。 – 2013-03-21 03:32:51
13 quadrillion是非常巨大的。我建議你尋找一種更有效的方式,通過尋找數學模式來編碼你的解決方案;) – Patashu 2013-03-21 03:34:45
你將無法用蠻力解決這個問題。如果你設法每秒處理一萬億次數據,它會花費你三個小時。 – Blender 2013-03-21 03:37:50