소수(Prime number, 素數)는 약수가 나 자신과 1밖에 없는 수를 말한다.
→ 2 이상의 숫자부터 자기 자신보다 1 작은 숫자까지 나누면서 나누어 떨어지지 않으면 소수이다.
public class Example
{
public static void main(String[] args)
{
boolean isPrimeNumber = true; // 숫자 i가 소수인지 아닌지를 저장할 변수.
for(int i = 2; i < 101; i++) // i는 소수인지 아닌지 판별할 2 ~ 100의 숫자.
{
for(int j = 2; j < i - 1; j++) // j는 i를 나누기 위한 2 ~ i - 1의 숫자.
{
if(i % j == 0) // i를 j로 나누었을때 나누어 떨어진다면(2 이상의 숫자로 나누었을때 나누어 떨어진다면) i는 소수가 아니다.
{
System.out.println("i = " + i + ", j = " + j); // 현재의 변수 i, j의 값을 출력.
isPrimeNumber = false; // 이 숫자는 소수가 아니라고 정한다.
break; // 나머지 숫자로는 나눌 가치도 없으므로 내부 반복을 종료한다.
}
else
{
isPrimeNumber = true; // 다음 숫자 i를 위해서 소수 판별 변수를 다시 true로 선언.
}
}
if(isPrimeNumber == true) // 2부터 i보다 1 작은 숫자로 나눴을 때 나누어 떨어지지 않디? 라고 물어본다.
{
System.out.println(i + "은 소수이다."); // 네, 그렇던데요. 라면 i는 소수이다.
}
else
{
System.out.println(i + "는 소수가 아니다."); // 아니오, 떨어지던데요. 하면 i는 소수가 아니다.
}
}
}
}
'PROGRAMMING > 예제' 카테고리의 다른 글
[Python] 주민등록번호 입력받고 생년월일 출력하기 (0) | 2022.01.22 |
---|---|
[Java] Calendar 클래스를 이용해서 달력 출력하기 (0) | 2021.12.15 |
[Java] 중복되지 않는 숫자만 배열에 집어넣고 싶은 사람만 보세요 (0) | 2021.11.24 |
[Java] 윤년 계산하기 (0) | 2021.11.16 |
[Java] 입력된 숫자 두 개로 사칙연산 + 나머지 구하기 (0) | 2021.11.16 |