結果
| 問題 |
No.3358 逆数の小数部分
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-11-14 21:53:32 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 37 ms / 2,000 ms |
| コード長 | 972 bytes |
| コンパイル時間 | 259 ms |
| コンパイル使用メモリ | 82,364 KB |
| 実行使用メモリ | 54,464 KB |
| 最終ジャッジ日時 | 2025-11-14 21:53:50 |
| 合計ジャッジ時間 | 2,697 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
ソースコード
import sys
input = lambda :sys.stdin.readline()[:-1]
ni = lambda :int(input())
na = lambda :list(map(int,input().split()))
yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES")
no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO")
#######################################################################
def f(x):
if "." in x:
i = x.find(".")
p, q = x[:i], x[i+1:]
# print(p, q, int(q) ** (10 - len(q)))
assert len(q) <= 9
return int(p) * (10 ** 9) + int(q) * 10 ** (9 - len(q))
else:
return int(x) * (10 ** 9)
def saiki(p, q):
# print(p, q)
if p == 0:
return 0
# p / q
# q % p / p
return saiki(q % p, p) + 1
n = 10 ** 9
def nxt(y):
# y = n * x
# 1 / x = n / n * x
return y - y // n
x = input()
y = f(x)
# y = 10 ** 9 * x
# print(y)
from math import gcd
g = gcd(n, y)
a = y // g
b = n // g
# print(a, b)
print(saiki(a, b))