結果
| 問題 |
No.2829 GCD Divination
|
| コンテスト | |
| ユーザー |
Kude
|
| 提出日時 | 2024-08-02 21:47:03 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 38 ms / 2,000 ms |
| コード長 | 597 bytes |
| コンパイル時間 | 333 ms |
| コンパイル使用メモリ | 82,460 KB |
| 実行使用メモリ | 57,784 KB |
| 最終ジャッジ日時 | 2024-08-02 21:47:06 |
| 合計ジャッジ時間 | 2,507 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 35 |
ソースコード
def factorize(x):
ret = []
p = 2
while p * p <= x:
cnt = 0
while x % p == 0:
x //= p
cnt += 1
if cnt:
ret.append(p)
p += 1
if x > 1:
ret.append(x)
return ret
n = int(input())
ps = factorize(n)
k = len(ps)
ans = 1
for s in range(1, 1 << k):
p = 1
for i in range(k):
if s >> i & 1:
p *= ps[i]
cnt = n // p
# p = cnt / n
# p/(1-p) = cnt / (n - cnt)
v = cnt / (n - cnt)
if s.bit_count() % 2:
ans += v
else:
ans -= v
print(f'{ans:.12f}')
Kude