본문 바로가기

JAVA/Practice Q

Q15. 2~100사이의 소수를 구해보자

// 소수인지 확인하는 코드부터 해보자

System.out.println("===== 소수 확인 코드=====");

boolean isPrime = true;		// 소수면 true, 소수가 아니면 false
int y = 17;

for(int x = 2 ; x < y ; x++) {
    if(y % x == 0) {
        isPrime = false;	
        break;
    }	
}

if(isPrime == false) {
    System.out.println("소수 아님");
}else {
    System.out.println("소수임");
}

 

 

// 방법01.

System.out.println("=======방법01======");

boolean isPrime2 = true;

for (int i = 2 ; i <= 100 ; i++) {

    for(int a = 2 ; a < i ; a++) {

        if(i % a == 0) {
            isPrime2 = false;
        }

    }

    if(isPrime2 == true) {
        System.out.println(i);
    }

}	// 이런느낌인데 어디가 틀린거지?

 

 

// 방법01-다시

System.out.println("=======방법01 다시======");

for (int i = 2 ; i <= 100 ; i++) {

    isPrime2 = true;				// 여기다가 넣어야 isPrime2가 i가 변할때마다
    						// true로 초기화되겠지

    for(int a = 2 ; a < i ; a++) {

        if(i % a == 0) {
            isPrime2 = false;
            break; 					// break없이도 결과는 동일함... --> 
        }
    }

    if(isPrime2 == true) {
        System.out.println(i);
    }

}