자바에서 소수 판별하기: 완벽 가이드
소수란 무엇인가?
소수(Prime Number)는 1보다 큰 자연수 중에서 1과 자기 자신 외에는 양의 약수를 가지지 않는 수입니다. 대표적인 예로 2, 3, 5, 7, 11, 13, 17 등이 있습니다.
핵심 포인트:
- 0과 1은 소수가 아닙니다.
- 2는 유일한 짝수 소수입니다.
자바 소수 판별 프로그램
알고리즘 개요:
- 대상 숫자를 2부터 해당 숫자의 절반까지 모든 정수로 나누어 봅니다. 나머지가 0인 경우가 있으면 합성수입니다.
- 약수를 찾으면 즉시 루프를 종료하여 시간을 절약합니다.
- 약수가 없으면 소수입니다.
public class PrimeChecker {
public static void main(String[] args) {
int numberToCheck = 17; // 테스트할 숫자 변경 가능
boolean isPrime = true;
// 예외 처리: 0과 1은 소수가 아님
if (numberToCheck < 2) {
isPrime = false;
} else {
for (int i = 2; i <= numberToCheck / 2; i++) {
int remainder = numberToCheck % i;
System.out.println(numberToCheck + " ÷ " + i + " = " + (numberToCheck / i) + " 나머지 " + remainder);
if (remainder == 0) {
isPrime = false;
break;
}
}
}
if (isPrime) {
System.out.println(numberToCheck + "은(는) 소수입니다.");
} else {
System.out.println(numberToCheck + "은(는) 소수가 아닙니다.");
}
}
}
실행 결과 예시
17 ÷ 2 = 8 나머지 1
17 ÷ 3 = 5 나머지 2
17 ÷ 4 = 4 나머지 1
17 ÷ 5 = 3 나머지 2
17 ÷ 6 = 2 나머지 5
17 ÷ 7 = 2 나머지 3
17 ÷ 8 = 2 나머지 1
17은(는) 소수입니다.
위 프로그램을 활용해 원하는 정수의 소수 여부를 확인하거나, 1부터 100 사이의 모든 소수를 찾는 프로그램으로 확장해 보세요.