• 문제 링크
1837번: 암호제작
원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로
www.acmicpc.net
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.math.BigInteger;
import java.util.StringTokenizer;
public class Main {
static boolean[] nonPrime = new boolean[1000001];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
sieve();
StringTokenizer st = new StringTokenizer(br.readLine());
int n = verify(new BigInteger(st.nextToken()), Integer.parseInt(st.nextToken()));
bw.write(n == -1 ? "GOOD" : "BAD " + n);
bw.flush();
}
private static int verify(BigInteger p, int k) {
for (int i = 2; i < k; i++)
if (!nonPrime[i] && p.mod(BigInteger.valueOf(i)).equals(BigInteger.ZERO)) return i;
return -1;
}
private static void sieve() {
double sqrt = Math.sqrt(nonPrime.length);
for (int i = 2; i < sqrt; i++)
if (!nonPrime[i]) for (int j = i * i; j < nonPrime.length; j += i) nonPrime[j] = true;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 10815 숫자 카드 - Data Structure / Java (0) | 2024.03.30 |
---|---|
[백준] 17599 Bags - Data Structure / Java (0) | 2024.03.29 |
[백준] 17614 369 - Brute Force / Java (0) | 2024.03.27 |
[백준] 2501 약수 구하기 - Brute Force / Java (0) | 2024.03.26 |
[백준] 5618 공약수 - Brute Force / Java (0) | 2024.03.25 |
댓글