응애개발자
article thumbnail
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());
    }
}
profile

응애개발자

@Eungae-D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!