結果

問題 No.3358 逆数の小数部分
コンテスト
ユーザー tassei903
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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))
0