No Rules Rules

좋은 암호 (feat. 백준, 2061번) 본문

생활/코테

좋은 암호 (feat. 백준, 2061번)

개발하는 완두콩 2022. 9. 6. 12:19
728x90
반응형

좋은 암호
https://www.acmicpc.net/problem/2061

 

2061번: 좋은 암호

암호화 방식 중에는 소수를 이용하는 것들이 많다. 보통은 매우 큰 두 개의 소수를 선택하고, 두 소수를 곱한 값을 암호화에서의 키로 사용하고는 한다. 이러한 방법이 좋은 이유는 일반적으로

www.acmicpc.net

 

반응형

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	string K;
	register int L;
	cin >> K >> L;
	for (register int i = 2, j; i < L; ++i) {
		register int ans = 0, tmp = 1;
		for (j = K.length() - 1; j >= 0; --j) {
			ans = (ans + (K[j] - '0') * tmp) % i;
			tmp *= 10;
			tmp %= i;
		}
		if (ans == 0) {
			cout << "BAD " << i;
			return 0;
		}
	}
	cout << "GOOD";
	return 0;
}
// *&)*@*

 

  1. K의 범위가 long long을 한참 넘기 때문에 string을 이용하여 매우 큰 값을 연산하는 방식입니다.
  2. python과 java와 달리 c++에는 biginteger와 같은 자료형이 없으므로 직접 구현이 필요합니다.

 

728x90
반응형
Comments