結果
| 問題 |
No.25 有限小数
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2020-04-26 16:50:31 |
| 言語 | Lua (LuaJit 2.1.1734355927) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 806 bytes |
| コンパイル時間 | 507 ms |
| コンパイル使用メモリ | 5,376 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-17 12:43:43 |
| 合計ジャッジ時間 | 1,605 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 31 |
ソースコード
local ffi = require("ffi")
local C = ffi.C
ffi.cdef[[
long long atoll(const char*);
]]
local function lltonumber(str)
return C.atoll(str)
end
local n = io.read()
n = lltonumber(n)
local m = io.read()
m = lltonumber(m)
while m % 10LL == 0LL do
m = m / 10LL
end
while n % 10LL == 0LL do
n = n / 10LL
end
while n % 2LL == 0LL and m % 2LL == 0LL do
n = n / 2LL
m = m / 2LL
end
while n % 5LL == 0LL and m % 5LL == 0LL do
n = n / 5LL
m = m / 5LL
end
local m2, m5 = 0, 0
while m % 2LL == 0LL do
m2 = m2 + 1
m = m / 2LL
end
while m % 5LL == 0LL do
m5 = m5 + 1
m = m / 5LL
end
if n % m ~= 0LL then
print(-1)
os.exit()
end
n = n / m
if 0LL < m2 then
print(5)
os.exit()
end
n = n % 10LL
n = tostring(n):gsub("LL", "")
n = tonumber(n)
for i = 1, m5 do
n = (n * 2) % 10
end
print(n)