我想執行這個數學函數:POW()函數給出錯誤的結果
3^(3^1000000000) mod 1000000007
這樣做的結果是:930782551
但這樣做直接在Python花費大量的時間,和該程序掛起:
return pow(3,pow(3,1000000000),1000000007)
所以,我認爲執行這將是相同的:
return pow(3,pow(3,1000000000, 1000000007),1000000007)
但結果是:270196661
我怎樣才能在合理的時間正確的結果930782551
?
你的WA表達應該是'(3 ^((3^1000000000)mod1000000007))mod1000000007'。你放在那裏和你放在這裏的東西是不一樣的。 –
尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。見[mcve]。 –
你需要費馬小定理/歐拉定理來有效地做到這一點。幸運的是,1000000007是素數,所以很容易計算它的總體函數。 –