結果
問題 |
No.8056 量子コンピュータで素因数分解 Easy
|
ユーザー |
![]() |
提出日時 | 2020-02-05 03:49:42 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 213 ms / 2,000 ms |
コード長 | 354 bytes |
コンパイル時間 | 415 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 29,152 KB |
平均クエリ数 | 2.50 |
最終ジャッジ日時 | 2024-12-31 19:35:48 |
合計ジャッジ時間 | 6,556 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 26 |
コンパイルメッセージ
Syntax OK
ソースコード
# frozen_string_literal: true def query(a) puts "? #{a}" STDOUT.flush gets.to_i end n = gets.to_i g = -1 loop do a = rand(2...n) g = n.gcd(a) break if g != 1 t = query(a) next if t.odd? b = a.pow(t / 2, n) g = n.gcd(b - 1) break if g != 1 next if b == n - 1 g = n.gcd(b + 1) break if g != 1 end puts "! #{g} #{n / g}"