코딩테스트/백준
[Java] 백준 1816번 : 암호 키
Eungae-D
2024. 4. 15. 19:04
728x90
문제
1816번: 암호 키
현대 사회에서 통용되고 있는 많은 종류의 암호 시스템에서는, 매우 큰 소수의 곱으로 만들어진 수를 암호 키로 이용하는 경우가 많다. 현실적으로 매우 큰 수를 빠른 시간 내에 소인수분해하는
www.acmicpc.net
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
private static StringBuilder sb;
private static BufferedReader br;
private static StringTokenizer st;
private static int N;
private static boolean isPrime = false;
//입력
public static void input() throws Exception {
br = new BufferedReader(new InputStreamReader(System.in));
sb = new StringBuilder();
N = Integer.parseInt(br.readLine());
for(int i = 0 ; i < N ; i++){
long input = Long.parseLong(br.readLine());
isPrime = check(input);
process();
}
}
//소수 체크
public static boolean check(Long input) {
for(int i = 2 ; i < 1000001 ; i++){
if(input % i == 0 ){
return false;
}
}
return true;
}
//과정
public static void process(){
if(isPrime){
sb.append("YES").append("\n");
}else{
sb.append("NO").append("\n");
}
}
public static void main(String[] args) throws Exception {
input();
System.out.println(sb.toString());
}
}