首頁>Club>
3
回覆列表
  • 1 # 使用者5314708855188

    首先,要問你短時間是多長時間,以下是我思考的過程:

    1、看到這個問題,我首先想到的就是縮小這個數量級,目前能夠想到的就是開方的方法縮小數量級到10的8次方,縮小到這個數量級的想法就是列印10的8次方以下的質數表,而列印這個質數表的複雜度是o(n),也就是要一億次。

    2、有了質數表,那麼就可以求出這個質因數的分解式,這個複雜度主要取決於質數表的大小,相對於一億來說的話應該不大,質因數的個數不超過64個,因為N不大於2的64次方。

    3、然後就是根據質因數的分解式,求約數,這個過程的複雜度和約數的個數有關,沒仔細算過,大概估計每個質因子都不同的話,應該是16個質因子,所以約數個數應該少於2的16次方個,這樣的話,其實複雜度也不算高,就是演算法有點複雜,沒法跟一億比綜上所述的話,複雜度最高的就是列印素數表,但是素數表只需要列印一次,如果可以列印一次素數表以後,再去求約數的話,那麼就有可能達到你的要求,當然,還要看你是什麼方式,還有限制是時間是多長。以上是我的一點想法,希望對你有幫助,好長時間不做acm了。

  • 中秋節和大豐收的關聯?
  • 為什麼睡覺醒來老嘴幹啊?