java

[java] 백준 1929 소수 구하기

MiaCoder 2024. 1. 29. 10:53

 

소수를 구하는 메소드만 만들줄 알면 매우 간단하다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));

        StringTokenizer st = new StringTokenizer(br.readLine());
		// 공백 입력을 위한 stringTokenixer
        
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        for (int i = N; i <= M; i++) {
            if (isPrime(i)) {
                System.out.println(i);
                N부터 M까지 각 수가 소수면 출력
            }
        }

    }

    public static boolean isPrime(int num) {
        if (num < 2) {
            return false;
            //2보다 작은 수는 소수가 아니므로 false
        }
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                return false;
                약수를 가지고 있는 수의 특징을 활용
                제곱근보다 작거나 같은 수를 무조건 약수로 가지고 있다.
                따라서 제곱근을 구하는 메소드인 sqrt사용
            }
        }
        return true;
    }
}