본문 바로가기
코딩/백준-자바

[자바] 백준 1837번: 암호제작

by 철없는민물장어 2023. 1. 31.
728x90
반응형

https://www.acmicpc.net/problem/1837

 

1837번: 암호제작

원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로

www.acmicpc.net

 

10의 100승까지 되는 엄청 큰 숫자를 다뤄야 하기 때문에

BigInteger을 사용한다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;

public class P1837 {

	static boolean[] prime = new boolean[1000001];

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		StringTokenizer st = new StringTokenizer(br.readLine());

		BigInteger num = new BigInteger(st.nextToken());

		int k = Integer.parseInt(st.nextToken());

		for (int i = 2; i < 1000001; i++) {
			prime[i] = true;
		}

		for (int i = 2; i < 1000001; i++) {
			if (prime[i] == true) {
				for (int j = i * 2; j < 1000001; j += i) {
					prime[j] = false;
				}
			}
		}

		for (int i = 2; i < k; i++) {
			if (prime[i] == false)
				continue;

			BigInteger now = new BigInteger(Integer.toString(i));

			if (num.mod(now).compareTo(BigInteger.ZERO) == 0) {
				System.out.println("BAD " + now);
				return;
			}
		}

		System.out.println("GOOD");

	}

}
728x90
반응형

댓글