結果
| 問題 | 
                            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
ソースコード
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}"
}