結果

問題 No.1006 Share an Integer
ユーザー 小野寺健
提出日時 2021-11-06 18:19:08
言語 Ruby
(3.4.1)
結果
AC  
実行時間 1,958 ms / 2,000 ms
コード長 505 bytes
コンパイル時間 54 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 28,160 KB
最終ジャッジ日時 2024-11-07 17:02:27
合計ジャッジ時間 19,423 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

X = gets.to_i

d = Array.new(X+1, 1)
d[0] = 0
2.upto(X) {|i|
	if d[i] == 1 then
		d[i] = 2
		(2*i).step(X, i) {|j|
			n = 1
			k = j
			while k % i == 0 do
				n += 1
				k /= i
			end
			d[j] *= n
		}
	end
}

min = X
minpair = nil

1.upto(X/2) {|a|
	b = X - a
	v = (a - d[a] - b + d[b]).abs
	if min > v then
		min = v
		minpair = a == b ? [[a, b]] : [[a, b], [b, a]]
	elsif min == v then
		minpair << [a, b]
		minpair << [b, a] if a != b
	end
}

minpair.sort_by{|x| x[0]}.each {|a, b|
	puts "#{a} #{b}"
}
0