PROGRAMMING/예제
[Java] 솟수를 솟솟, 소수(Prime Number) 구하기.
민 이
2021. 11. 19. 08:46
소수(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는 소수가 아니다.
}
}
}
}