結果
問題 | No.1006 Share an Integer |
ユーザー | brthyyjp |
提出日時 | 2020-03-06 23:13:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 87 ms / 2,000 ms |
コード長 | 682 bytes |
コンパイル時間 | 207 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 71,040 KB |
最終ジャッジ日時 | 2024-10-14 09:43:09 |
合計ジャッジ時間 | 2,509 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
x = int(input()) def make_divisors(n): divisors = [] for i in range(1, int(n**0.5)+1): if n % i == 0: divisors.append(i) if i != n // i: divisors.append(n//i) #divisors.sort(reverse=True) return divisors l = [10**18]* (x//2) for a in reversed(range(1, x//2+1)): b = x - a if abs(a-b) >= 1500: break l[a-1] = abs(a-len(make_divisors(a))-b+len(make_divisors(b))) #print(l) min_ = min(l) anss = [] for i in range(len(l)): if l[i] == min_: anss.append(i+1) if i+1 != x-(i+1): anss.append(x-(i+1)) anss.sort() for i in range(len(anss)): print(anss[i], x-anss[i])