소수 (prime number)

양혜정·2024년 1월 28일
0

Begin_java

목록 보기
32/71

소수

  • 1과 자기 자신밖에 나누어지지 않는 1 이외의 정수
    즉, 몫이 1이나 자기 자신뿐인 수

-> 자신보다 작은 수를 나누기를 했을 때, 나머지가 '0' 인 경우가 있을 경우 소수가 아니다.

==> % : 나머지를 나타내는 연산자
i 가 2 이라면 ==> 												2는 소수이다. 
i 가 3 이라면 ==> 3%2 != 0										3는 소수이다.
i 가 4 이라면 ==> 4%2 == 0	4%3(검사할 필요가 없다)				4는 소수가 아니다.
i 가 5 이라면 ==> 5%2 != 0	5%3 != 0 5%4 != 0					5는 소수이다.
i 가 6 이라면 ==> 6%2 == 0	6%3(검사할 필요가 없다) 				6은 소수가 아니다.
i 가 7 이라면 ==> 7%2 != 0	7%3 != 0 7%4 != 0 7%5 != 0 7%6 != 0	7은 소수이다.
i 가 8 이라면 ==> 8%2 == 0	8%3(검사할 필요가 없다) 				8은 소수가 아니다.
i 가 9 이라면 ==> 9%2 != 0	9%3 == 0 9%4(검사할 필요가 없다) 		9은 소수가 아니다.
i 가 10 이라면 ==> 10%2 == 0	10%3(검사할 필요가 없다) 				10은 소수가 아니다.

Ex) 숫자1 ~ 숫자2 까지의 소수 확인

do{
	try{
    	System.out.print("▷시작 자연수 :");
        int start_no = sc.nextInt();
        System.out.print("▷끝 자연수 :");
        int end_no = sc.nextInt();
        
     	String str_result = "";
        int cnt = 0, sum = 0;
        
        for(int i=start_no; i<=end_no; i++) {
        	if(i==1) {	// 1은 소수가 될 수 없으므로 검사할 필요 X
            	continue;	// 아래를 진행하지 않고 다시 반복문 증감식으로 올라간다
            }
            boolean isSosu = true;
            for(int bunmo=2; bunmo<i; bunmo++) {	// 2나누기 2 제외하기 위해
            										// bunmo < i 설정
                if(i%bunmo == 0) {	// 몫이 다른수도 가능하다는 것을 뜻한다.
                	isSosu = false;
                    break;	// 가까운 반복문을 빠져나간다.
             	}	// end of if---------
            }	// end of for--------------
            
            if(isSosu) {	// isSosu가 true 라면
            	cnt++;		// 소수의 개수
                sum += i;	// 소수들의 누적 합계
                String add = (cnt==1)?"":",";
                str_result += add+i;
            }	// end of if-----------
       }	// end of for-------------------------------
    } catch (InputMismatchException e) {	// 정수(int)가 아닌 다른값을 입력한 경우
    	System.out.println(">> [경고] 자연수만 입력하세요!!\n");
		sc.nextLine();	// 입력한 값을 버려야 새로 입력이 가능하다.
    }	// end of try~catch-----------------
    sc.close();
    break;	// while이 항상 true 이기 때문에 break가 있어야 빠져나갈 수 있다.
} while (true);	// end of do~while------------------------------------------
System.out.println("\n=== 프로그램 종료 ===\n");

정리

my.day07.b.dowhile -> Main_primenumber_3

0개의 댓글

관련 채용 정보