본문 바로가기

IT프로그래밍/JAVA(자바)

[Java]자바 소수 구하기 / 소수 판별 - 소스코드 및 설명

자바 소수 구하기 / 소수 판별하기

소수란?

1과 자기자신만을 약수로 갖는 양의 정수를 말합니다.

2는 1과 2를 약수로 갖습니다. 즉 소수 입니다.

10은 1, 2, 5, 10을 약수로 갖습니다. 즉 소수가 아닙니다.

 

이것을 Java로 구현해보겠습니다.


Java 소수 판별 예제

사용자에게 숫자를 입력받고, 그 숫자가 소수 인지 판별하는 자바 프로그램을 구현하시오.

 

Java 소수 판별 소스 코드

import java.util.Scanner;

public class JAVA_EXAMPLE_003 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("소수인지 판별할 숫자를 입력하세요(1보다 커야 합니다.)");
        int num = sc.nextInt();
     
        int result = Is_Prime(num);
        if(result == 2)
            System.out.println(num + "은 소수입니다.");
        else if(result < 2)
            System.out.println("1보다 큰 양의 정수를 입력해주세요.");
        else
            System.out.println(num + "은 소수가 아닙니다.");
    }

    private static int Is_Prime(int num)
    {
        int count = 0;

        for(int i = 1; i <= num; i++)
        {
            if(num % i == 0)
                count += 1;
            if(count >= 3)
                return count;
        }
        
        return count;
    }
    
}

 

 

자바 소수 구하기 소스 코드 설명

1. 사용자에게 숫자를 입력받습니다.

2. 입력받은 수를 파라미터로 Is_Prime 메서드를 실행합니다.

3. Is_Prime메서드는 입력받은 파라미터의 약수의 갯수를 반환합니다.

   - 약수의 갯수가 3개 이상이라면, 더이상 소수일 수 없기 때문에 바로 반환시켜버립니다.

4. 반환받은 숫자를 result 변수에 담고 if문을 통해 입력받은 숫자가 소수였는지 판별합니다.

   - 약수가 2개뿐이다 => 소수

   - 약수가 2개보다 작다 => 1이하의 숫자가 입력되었기에 1보다 큰 양의 정수를 입력해달라고 표출합니다.

   - 그외의 케이스 : 위의 두 케이스 이외라고 하면 결국 약수가 3개 이상인 경우 밖에 남질 않습니다. => 소수가 아님.

 

※ Java에서 Scanner를 이용해서 사용자에게 입력을 받는 방법은 아래 링크 참조. 

https://manniz.tistory.com/entry/JAVA%EC%9E%90%EB%B0%94-Scanner-%EC%98%88%EC%A0%9C-%EC%9E%85%EB%A0%A5%EB%B0%9B%EA%B8%B0-%EB%B3%80%EC%88%98%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

 

[JAVA]자바 Scanner 예제 - 입력받기, 변수에 저장하기

Java 입력받기 사용자에게 값을 입력받아야 하는 경우, Scanner Class를 이용하여 입력을 받을 수 있습니다. Scanner 클래스를 사용하기 위해서는 해당 클래스를 import해야 합니다. Java 클래스 제일위에

manniz.tistory.com

 

 

자바 소수 구하기 결과

자바 소수 판별 프로그램 결과 #1

 

자바 소수 판별 프로그램 결과 #2

 

자바 소수 판별 프로그램 결과 #3

 

사용자가 입력 한 숫자가 소수인지 아닌지 출력 결과를 통해 바로 확인 할 수 있습니다.