結果
問題 | No.1006 Share an Integer |
ユーザー | chielo |
提出日時 | 2020-03-06 21:57:58 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 280 ms / 2,000 ms |
コード長 | 782 bytes |
コンパイル時間 | 297 ms |
コンパイル使用メモリ | 82,260 KB |
実行使用メモリ | 128,304 KB |
最終ジャッジ日時 | 2024-10-14 06:47:07 |
合計ジャッジ時間 | 7,139 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
maxn = 2 * 10 ** 6 + 3 d = [0] * maxn mpc = [0] * maxn p = [] pv = [False] * maxn d[1] = 1 for i in range(2, maxn): if not pv[i]: p.append(i) d[i] = 2 mpc[i] = 1 for j in p: if i * j >= maxn: break if i % j == 0: pv[i * j] = True mpc[i * j] = mpc[i] + 1 d[i * j] = d[i] // mpc[i * j] * (mpc[i * j] + 1) break else: pv[i * j] = True mpc[i * j] = 1 d[i * j] = 2 * d[i] f = lambda n: n - d[n] x = int(input()) ans = 10 ** 18 al = [] for i in range(1, x): a, b = i, x - i c = abs(f(a) - f(b)) if c < ans: ans = c al = [(a, b)] elif c == ans: al.append((a, b)) for a, b in al: print(a, b)