結果

問題 No.1611 Minimum Multiple with Double Divisors
ユーザー yuruhiya
提出日時 2021-07-22 10:18:20
言語 Crystal
(1.14.0)
結果
AC  
実行時間 1,274 ms / 2,000 ms
コード長 398 bytes
コンパイル時間 14,524 ms
コンパイル使用メモリ 295,100 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-03 02:50:48
合計ジャッジ時間 24,912 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 37
権限があれば一括ダウンロードができます

ソースコード

diff #

PRIMES = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

def count(x, p)
  c = 0
  while x % p == 0
    x //= p
    c += 1
  end
  c
end

read_line.to_i.times do
  x = read_line.to_i64
  divisor_count = PRIMES.reduce(1) { |acc, p| acc * count(x, p).succ }
  puts x * (2..).find { |k|
    divisor_count * 2 == PRIMES.reduce(1) { |acc, p|
      acc * (count(x, p) + count(k, p) + 1)
    }
  }.not_nil!
end
0