4375
문제 요약 2와 5로 나누어 떨어지지 않는 정수 n, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾아라. 출력 각 자릿수가 모두 1로만 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다. 문제 풀이 뭔소리야? 배수는 어떤 수를 다른 수로 나누었을 때 나누어 떨어지는 수를 말한다. 다른 말로는 한 수를 다른 수로 곱하여 얻어진 수를 해당 수의 배수라고 한다. 3, 6, 9는 뭐야? 3의 배수. 왜? 3,6,9라는 수를 3으로 나누었을 때 나누어 떨어지니까. 역으로 3 * 1 =3, 3 * 2= 6, 3*3=9, 얻어진 수는 3,6,9이고 이는 3의 배수. 이 개념으로 들어가면 각 자릿수가 1로만 이루어진 경우는 다음과 같다. 1 11 111 1111 11111 이를 n으로 나눈 결과가 0인 경우..
2023. 7. 9.
1629
문제 요약 자연수 A를 B번 곱한 수를 알고 싶고, 이를 C로 나눈 나머지를 구해라. 입력 A, B, C 모두 2,147,483,647 이하의 자연수이다. 풀이 시간제한이 0.5초이다. 21억 번 반복하면서 곱하면 시간 초과가 발생한다. 또한 이 값이 long long 범위를 넘어서기 때문에 중간중간 나머지를 구해야 하고, 계산값을 중간에 캐싱해야한다. #include using namespace std; int r,a,b,c; long long powMod(int a, int b, int c){ if(b == 0) { return 1; } long long temp = powMod(a, b/2, c) % c; long long result = (temp * temp) % c; if(b & 1){ res..
2023. 7. 9.