🌟
ABC 174 | C - Repsept
問題
考えたこと
long long
を超えてしまうので他に表し方がないか考える。
そうすると
コード
実装時のTips
- あえて
using mint = modint;
を使ったが使わなくてもコードは短くできる
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
const int MOD = 1e9 + 7;
using mint = modint;
int main() {
ll K;
cin >> K;
mint::set_mod(K);
mint a = 7;
ll count = 1;
if (a == 0) {
cout << count << endl;
return 0;
}
unordered_set<int> s;
s.insert(a.val());
while (true) {
count++;
a = a * 10 + 7;
if (a == 0) {
cout << count << endl;
return 0;
}
if (s.find(a.val()) != s.end()) {
break;
}
s.insert(a.val());
}
cout << -1 << endl;
}
Discussion