結果

問題 No.25 有限小数
ユーザー 6soukiti29
提出日時 2017-07-27 09:05:30
言語 Nim
(2.2.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 927 bytes
コンパイル時間 2,788 ms
コンパイル使用メモリ 64,276 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-06-30 01:49:27
合計ジャッジ時間 3,730 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

import strutils,math

var
    N = stdin.readline.parseBiggestInt
    M = stdin.readline.parseBiggestInt
    s = gcd(N,M)
    cnt2,cnt5 : int
    n : string
N = N div s
M = M div s
var M2 = M

while M mod 2 == 0:
    M = M div 2
    cnt2 += 1

while M mod 5 == 0:
    M = M div 5
    cnt5 += 1
if M == 1:
    if (N.float64 / M2.float64) mod 1.0 == 0.0:
        var j = 10.0
        var a = (N.float64 / M2.float64) mod j
        while a == 0.0:
            j *= 10.0
            a = (N.float64 / M2.float64) mod j
        n = $a
        echo n[0]
    else:
        for i in 0..cnt5:
            while N mod 10 == 0:
                N = N div 10
            N = N mod 100
            N *= 2
        for i in 0..cnt2:
            while N mod 10 == 0:
                N = N div 10
            N = N mod 100
            N *= 5
        while N mod 10 == 0:
            N = N div 10
        n = $N
        echo n[^1]
else:
    echo -1
0