https://www.acmicpc.net/problem/4375
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
void CPP_INIT() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int main(void) {
CPP_INIT();
int num;
while (true) {
cin >> num;
if (cin.eof()) return 0;
int chk = 1;
int jari = 1;
while (true) {
if (chk % num == 0) {
cout << jari << endl;
break;
}
chk = chk * 10 + 1;
chk %= num;
jari++;
}
}
}
(A mod B) mod B == A mod B
chk %= num; 을 해준 후 chk % num을 한번 더 하여, chk 값이 long long의 값보다 커지지 않도록 방지
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 백준 6588 골드바흐의 추측 (0) | 2025.01.19 |
---|---|
C++ 알고리즘 - 백준 17427 약수의 합 2 (0) | 2025.01.19 |
C++ 알고리즘 - 백준 24060 알고리즘 수업 - 병합 정렬 1 (0) | 2025.01.17 |
C++ 알고리즘 - 백준 25501 재귀의 귀재 (참조자 문자열) (0) | 2025.01.17 |
C++ 알고리즘 - 백준 10870 피보나치 수 5 (0) | 2025.01.17 |