結果
問題 |
No.25 有限小数
|
ユーザー |
|
提出日時 | 2025-05-16 18:35:55 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 808 bytes |
コンパイル時間 | 2,381 ms |
コンパイル使用メモリ | 194,628 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-05-16 18:35:59 |
合計ジャッジ時間 | 3,422 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 WA * 4 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); unsigned long long N,M; cin >> N >> M; auto g = gcd(N,M); N /= g; M /= g; auto m = M; while(M%2 == 0) M /= 2; while(M%5 == 0) M /= 5; if(M != 1){cout << "-1\n"; return 0;} swap(m,M); while(N%10 == 0) N /= 10; while(M%10 == 0) M /= 10; while(N%5 == 0) N /= 5; if(M == 1) cout << N%10 << endl; else if(M%2 == 0) cout << N%10*2%10 << endl; else{ int log5 = 0; while(M%5 == 0) log5++,M /= 5; log5 %= 4; if(log5 == 0) cout << N%10*6%10 << endl; if(log5 == 1) cout << N%10*2%10 << endl; if(log5 == 2) cout << N%10*4%10 << endl; if(log5 == 3) cout << N%10*8%10 << endl; } }