Problem 245 (改良)
コンテンツ
C++で書いて,その際,効率の良い方法をつかった.
基本的戦略:
を固定して,
なるような,pを探す.
そして,semi prime の 場合は の約数を考えることで, p を求め.
semi prime でない場合は k について考えることで, p を求めた.
で次を利用(探索範囲 2 < n < u).
- p < u / m , p < m * m
- k < (m * p_max – 1) / ( (m – phi(m)) * p_max + phi(m))
- k > (m * q_max – 1) / ( (m – phi(m)) * q_max + phi(m))
C++ のコードは以下から
(パスワードは1<n<10^11の答えの下10桁,10桁より大きいパスワードをアップローダーが受け付けなかった.)
http://firestorage.jp/download/e8002cb812d750c5414d4280f4714b67629e3327
ちなみに,自分の環境では5秒以下で走る.
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)