백준 1929번 자바 : 소수 구하기

Rena·2022년 3월 13일
0

알고리즘 문제풀이

목록 보기
9/45
  1. 처음에는 이렇게 풀었는데 시간이... 너무 오래 걸려서 다시!!
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int n = in.nextInt();

        for(int i=m; i<=n; i++) {
            if(isPrime(i)) {
                System.out.println(i);
            }
        }
    }

    static boolean isPrime(int Number) {
        if(Number == 1){
            return false;
        }

        for(int i = 2; i <= Math.sqrt(Number); i++) {
            if(Number % i == 0) return false;
        }
        return true;
    }
}
  1. 에라토스테네스의 체를 이용한 풀이
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int m = in.nextInt();
		int n = in.nextInt();

		int[] array = new int[n+1];

		for(int i=2; i<=n; i++) {
			array[i] = i;
		}

		for(int i=2; i<=n; i++) {
			if(array[i] == 0) continue;
			for(int j=i+i; j<=n; j+=i) {
				array[j] = 0;
			}
		}
		for(int i=m; i<=n; i++) {
			if(array[i] != 0) System.out.println(array[i]);
		}
	}
}
profile
일을 사랑하고 싶은 개발자

0개의 댓글