카테고리 없음

백준 2061 자바(Java) 좋은 암호 - 필요한 조건만 구현

서병렬 2025. 3. 3. 21:56

문제 태그

  • 필요한 조건만 구현
  • 상식 배제하기
  • BigInteger

특징

K가 인수분해되지 않는 케이스에 대한 언급이 없다.

실무 상황 이라면 당연히 확인해야하는 상황이지만, 이 문제에 대한 해답을 내놓기만 하면 되는 상황에서는 이 경우 K가 1보다 큰 수로 인수분해되지 않는 케이스가 없다고 생각해야한다.

사고 과정은 아래 Mermaid 다이어그램 참고

위의 Mermaid 다이어그램에 대한 코드

graph TD
	K --> 소인수분해{소인수분해}
	소인수분해 --> K가소수 --> 고려하지않음
	소인수분해 --> L미만의소수 --> 나쁜암호
	소인수분해 --> 나머지 --> 좋은암호

 

 

static void solve() throws Exception {
	BigInteger K = new BigInteger(scan.next());
	int L = scan.nextInt();
	for (int i = 2	; i <L ; i++) {
		if(K.mod(BigInteger.valueOf(i)).equals(BigInteger.ZERO)) {
			System.out.println("BAD " +i);
			return;
		}
	}
	System.out.println("GOOD");
}