Post

Java 예제: 가장 큰 소수 찾기

여기서 소수의 정의는 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 뜻합니다. 특정 수를 1부터 그 자신의 수까지 쭉 나눠봤을 때 나머지가 0인 경우가 두 번 뿐이라면 그 수는 소수라고 볼 수 있을 것입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.Scanner;

public class PrimeNumber {
    public static void main(String[] args) {
    	
        Scanner s = new Scanner(System.in);
        System.out.print("숫자를 입력하세요. (1~2,147,483,647) >> ");
        int num = s.nextInt();
        int maxPrimeNum = 0;
                
        for (int i = 1; i <= num; i++ )
        {
            int modZero = 0;
            
            if (i == 1)    //1은 소수가 아니라고 한다.
                continue;
            
            for (int j = 1; j <= i; j++)
            {                
                if ( i % j == 0 )	modZero++;
            }    
            
            if (modZero == 2)	maxPrimeNum = i;
        }
        
        System.out.println("가장 큰 소수: " + maxPrimeNum);    
        s.close();
    }
}
1
2
3
4
5
6
7
8
(999을 입력한 경우)
가장 큰 소수: 997

(1388을 입력한 경우)
가장 큰 소수: 1381

(6997을 입력한 경우)
가장 큰 소수: 6997
This post is licensed under CC BY 4.0 by the author.