Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

두 구간 사이의 소수를 출력하는 Java 프로그램


이 글에서는 두 구간(시작 숫자와 끝 숫자) 사이에 존재하는 소수를 화면에 출력하는 방법을 살펴봅니다. 소수(prime number)란 1과 자기 자신이라는 두 개의 약수만을 가지며, 그 외의 어떤 수로도 나누어 떨어지지 않는 특별한 수를 의미합니다.

소수의 기본 개념

어떤 수의 약수가 오직 1과 자기 자신뿐이라면 그 수는 소수입니다. 예를 들어 11의 약수는 1과 11뿐이므로 소수에 해당하며, 대표적인 소수로는 2, 3, 5, 7, 11, 13 등이 있습니다. 특히 2는 유일한 짝수 소수이고, 나머지 모든 소수는 홀수라는 점이 특징입니다. 한 가지 주의할 점은 1은 약수가 자기 자신 하나뿐이기 때문에 소수에 포함되지 않는다는 것입니다.

다음은 이번 예제의 입력값과 기대 출력 결과입니다.

입력

입력값이 다음과 같다고 가정해 보겠습니다.

시작 숫자 : 1
끝 숫자 : 75

출력

원하는 출력 결과는 다음과 같습니다.

구간 1과 75 사이의 소수는 다음과 같습니다:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73

알고리즘

1단계 - 시작
2단계 - 필요한 변수들을 선언한다
3단계 - 사용자로부터 값을 입력받거나 값을 직접 정의한다
4단계 - 낮은 수부터 높은 수 사이에서 while 반복문을 실행한다
5단계 - for 반복문으로 구간 내 각 숫자를 순회하면서, 1을 제외한 자신보다 작은 수로 나누어 떨어지는지 검사하고 결과를 저장한다
6단계 - 결과를 출력한다
7단계 - 종료

예제 1: 사용자 입력 받기

첫 번째 예제는 프롬프트를 통해 사용자가 직접 시작 숫자와 끝 숫자를 입력하는 방식입니다. 온라인 코딩 도구에서 직접 실행해 보면서 동작을 확인할 수도 있습니다.

import java.util.Scanner;
public class PrimeNumber {
   public static void main(String[] args) {
      int my_high, my_low, i;
      boolean my_temp;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A reader object has been defined ");
      System.out.print("Enter the starting number : ");
      my_low = my_scanner.nextInt();
      System.out.print("Enter an ending Number: ");
      my_high = my_scanner.nextInt();
      System.out.println("The prime numbers between the interval " + my_low + " and " + my_high + " are:");
      while (my_low < my_high) {
         my_temp = false;
         for(i = 2; i <= my_low/2; ++i) {
            if(my_low % i == 0) {
               my_temp = true;
               break;
            }
         }
         if (!my_temp && my_low != 0 && my_low != 1)
            System.out.print(my_low + " ");
         ++my_low;
      }
   }
}

출력

Required packages have been imported
A reader object has been defined
Enter the starting number : 1
Enter the ending number : 75
The prime numbers between the interval 1 and 75 are:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73

예제 2: 값 미리 정의하기

두 번째 예제는 시작 숫자와 끝 숫자를 코드 안에서 미리 정의한 뒤, 그 값을 사용해 결과를 콘솔에 출력하는 방식입니다. 사용자 입력 없이 바로 결과를 확인해야 할 때 유용합니다.

public class PrimeNumber {
   public static void main(String[] args) {
      int my_high, my_low, i;
      boolean my_temp;
      my_low = 1;
      my_high = 75;
      System.out.println("The starting and ending numbers are defined as " + my_low + " and " + my_high);
      System.out.println("The prime numbers between the interval " + my_low + " and " + my_high + " are:");
      while (my_low < my_high) {
         my_temp = false;
         for(i = 2; i <= my_low/2; ++i) {
            if(my_low % i == 0) {
               my_temp = true;
               break;
            }
         }
         if (!my_temp && my_low != 0 && my_low != 1)
            System.out.print(my_low + " ");
           ++my_low;
      }
   }
}

출력

The starting and ending numbers are defined as 1 and 75
The prime numbers between the interval 1 and 75 are:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73