학습장/Algorithm

1. 10. 2. Defining Prime Number JAVA 수정 ㅡ_ㅡ

Shin Jaehyun 2018. 4. 23. 20:22

package algorithm_Basic;
import java.util.Scanner;
public class Math_DefiningPrimeNumber {
     public static void main(String[] args) {
           // TODO Auto-generated method stub
           int inputN = 0;
           int compN = 0;
           int divN = 2;
           Scanner scan = new Scanner(System.in);
           System.out.printf("숫자를 입력하세요.\n\n");
           inputN = scan.nextInt();
           compN = inputN - 1;
           do { // 요새 do while 순서에 맛들렸나봅니다.
                if(compN <= 0) {
                     System.out.printf("[%d]\tis 1 or less!.", inputN); // 이건 그냥 1또는 1보다 작잖아! 출력하고 멈추기
                     break;
                }else if (divN <= compN) { // 나누는 수가 비교할 수와 비교해서 작은경우
                     
                     if (inputN % divN == 0) { // 입력한 수가 나누는 수로 나눠서 나눠떨어지는 경우
                           System.out.printf("[%d]\tis Not a Prime Number.", inputN); // 소수가 아니에요 출력하고 멈추기.
                           break;
                     } else { // 나누는 수가 비교할 수와 비교해서 작은데, 입력한 수가 나누는 수로 나눠떨어지지 않는 경우
                           divN++; // 나누는 수를 1 증가해서 다시 비교하기.
                     } // else
                } // 바깥쪽 if
                System.out.printf("[%d]\tis a Prime Number.", inputN); // 나누는 수가 비교할 수보다 크고, 나눠떨어지지 않은 경우. 즉, 자기 자신만 나눠지는
                                                                                           // 경우.
                break;
           } while (true); // do, while
           scan.close();
     }// main
}// class

1부터 5까지 하나씩 돌려보면 이렇게 나옵니다.





이렇게 입력된 숫자가 소수인지 아닌지 판별하는걸 해봤습니다.



수정~~~

  이 부분이 틀렸었어요. 다시... 수정했습니다. 1은 소수가 아니죠.?


그래서, 수정한대로 입력을 하면 이제 비교하는 숫자가 0 또는 그 이하인경우는 입력하는 숫자가 작은 수라고 별도로 출력을 하게끔 고쳤어요. 

0을 입력한 경우, 


1을 입력한 경우

이렇게 출력됩니다. ^^ 

다음것 하려는데 문득 1이 성가셨어요. 교재에서도 1이 있는 경우는 언급이 안되어있던데, 일단 돌려보고 아닌듯... 싶어서 해봤습니다. 
덕분에 조금 더 침착하게 보게 되었고, 좋네요.

물론 case를 써도 괜찮은데, if 써버렸어요.