본문 바로가기

JAVA/국비 공부

3월6일 수업(Prime Number)

1부터 100까지 소수를 구하는 프로그램

1. 소수란 무엇인가?


1과 자기자신 외에는 약수가 없는 숫자 = 약수의 갯수가 2인 숫자

2. 약수란 무엇인가?


 a를 b로 나누어서 나눠떨어지면 b는 a의 약수이다.
 예시) 5를 1로 나누어서 나눠떨어지면 1은 5의 약수이다.
         = A를 B로 나누어서 나머지가 0이면 B는 A의 약수이다.

3. 어떤 숫자의 가장 큰 약수는?  자기자신이다

 

 이 3가지 조건만 활용해서 1부터 100까지의 소수를 구하는 프로그램을 만들게 될 것이다.

 

package day0306;
public class Ex04PrimeNumber {

    public static void main(String[] args) {
        
        //여기서 우리가 중첩 for문을 만들어서 소수를 구하는데
        // i for 문은 해당 숫자가 소수인지 아닌지를 검사할 숫자가 된다.
        // 그렇다면 iStart는? 1
        //        iEnd는? 100
        int iStart = 1;
        int iEnd = 100;
        for(int i =iStart; i <=iEnd; i++) {
            //i의 약수가 몇개인지를 저장할 int변수 count를 선언과 초기화 해준다.
            int count = 0;
            
            //j for문에서  j 는  i의 약수인지 아닌지를 검사할 숫자가 된다.
            //그렇다면
            // jStart는? 1
            //jEnd는?i
            
            int jStart = 1;
            
            int jEnd = i;
            
            for(int j = jStart; j <= jEnd; j++) {
                //j가 i의 약수일때마다
                //count의 값을 1씩 증가시킨다.
                
                if(i % j == 0 ) {
                    count++;
                }
            }
            //count의 개수가 2일때마다
            //i가 소수입니다라는 메세지를 출력해준다
            if(count == 2) {
                System.out.printf("[%3d]는 소수입니다.\n", i);
            }
                
        }
    
    }

}

'JAVA > 국비 공부' 카테고리의 다른 글

3월 6일 수업(가위바위보 게임)  (0) 2021.03.08
3월 6일 수업( Guessing Game)  (0) 2021.03.08
3월 6일 수업 (중첩for문)  (0) 2021.03.08
3월 6일 수업(반복문 02)  (0) 2021.03.08
3월 6일수업(반복문02)  (0) 2021.03.08