結果
問題 | No.25 有限小数 |
ユーザー |
|
提出日時 | 2020-05-01 20:25:02 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 38 ms / 5,000 ms |
コード長 | 915 bytes |
コンパイル時間 | 195 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 10,624 KB |
最終ジャッジ日時 | 2024-12-24 18:45:09 |
合計ジャッジ時間 | 2,299 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
N, M = int(input()), int(input()) def to_and_five(num, lists={2:0, 5:0}): if num == 1: return lists if num % 2 == 0: lists[2] += 1 return to_and_five(num // 2, lists) if num % 5 == 0: lists[5] += 1 return to_and_five(num // 5, lists) return False def prime(n, m): if n < m: n, m = m, n if not (tmp := n % m): return m else: return prime(m, tmp) if N % M == 0: ans = N // M while not ans % 10: ans //= 10 ans %= 10 else: N, M = N // (tmp := prime(N, M)), M // tmp if (tmp := to_and_five(M)): if N >= 10: N %= 10 if tmp[2] > tmp[5]: for i in range(tmp[2] - tmp[5]): N *= 5 elif tmp[2] < tmp[5]: for i in range(tmp[5] - tmp[2]): N *= 2 ans = N % 10 else: ans = -1 print(ans)