問題一覧 > 教育的問題

No.3056 量子コンピュータで素因数分解 Easy

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / リアクティブ問題 (詳しくはこちら
タグ : / 解いたユーザー数 19
作問者 : Ryuhei MoriRyuhei Mori / テスター : tatyamtatyam
6 ProblemId : 3892 / 自分の提出
問題文最終更新日: 2020-02-05 11:58:09

問題文

二つの異なる奇素数 $P$ と $Q$ の積である整数 $N$ が与えられるので、$P$ と $Q$ を出力してください。ただし、あなたは量子コンピュータにアクセスして $N$ と互いに素な $N$ 未満の正の整数 $A$ について法 $N$ に関する $A$ の位数をクエリすることができます。

ここで整数 $N\ge 2$ と $N$ と互いに素な正の整数 $A$ について、法 $N$ に関する $A$ の位数とは $A^R \equiv 1 \mod N$ を満たす最小の正の整数 $R$ のことをいいます。

入出力

入力の一行目には

$N$

が与えられます。 $N$ は $2^{1024}$ 未満の正の整数であり、ちょうど二つの異なる奇数の素因数を持つことが保証されています。 $N$ と互いに素な $N$ 未満の正の整数 $A$ をクエリすると、法 $N$ に関する $A$ の位数が入力されます。 質問クエリのフォーマットは

? A
です。条件を満たさない $A$ をクエリすると不正解となります。 解答クエリのフォーマットは
! P Q
です。$P, Q > 1$ と $PQ = N$ を満たすとき正解となります。 クエリ回数に制限はありませんが、クエリの応答時間も含めて制限時間以内に $N$ の二つの異なる素因数を出力してください。

サンプル

サンプル1
入力
15
1
4
2
4
4
2
4
2 
出力
? 1
? 2
? 4
? 7
? 8
? 11
? 13
? 14
! 3 5            

法15に関する1の位数は1、2の位数は4、$\cdots$ です。15の素因数は3と5です。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。