結果
問題 |
No.1611 Minimum Multiple with Double Divisors
|
ユーザー |
|
提出日時 | 2021-11-17 10:40:53 |
言語 | Ruby (3.4.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 633 bytes |
コンパイル時間 | 267 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 28,672 KB |
最終ジャッジ日時 | 2024-12-23 06:26:56 |
合計ジャッジ時間 | 58,106 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 TLE * 18 |
コンパイルメッセージ
Syntax OK
ソースコード
def prime_factor(n) res = Hash.new(0) i = 2 while i * i <= n do while n % i == 0 do res[i] += 1 n /= i end i += 1 end res[n] += 1 if n != 1 res end def prime?(n) i = 2 while i * i <= n do return false if n % i == 0 i += 1 end n != 1 end def multiple?(f0, f1) x = y = 1 f0.each{|k, v| x *= (v + 1) y *= (f1.include?(k) ? v + f1[k] + 1 : v + 1) } f1.each{|k, v| y *= v + 1 if not f0.include?(k) } x * 2 == y end T = gets.to_i X = [] T.times { X << gets.to_i } ans = [] X.each {|x| f = prime_factor(x) i = 2 while not multiple?(f, prime_factor(i)) do i += 1 end ans << x * i } puts ans