Java/문제풀이 및 알고리즘

[Java] 자바 반복문으로 소수 출력하기, 소수 개수 (반복문, 조건문)

Yim_Ha_Eun 2023. 9. 15. 17:17

<생각하기>

스캐너 사용해서 숫자 입력받기

if (입력한 수가 2보다 작은 경우)

           => 잘못 입력하셨습니다

else

      if(숫자%반복문 ==0)

                     인 것이 1과 입력한 숫자뿐일 때(2개) (count를 이용해 개수를 센다.)

                     count가 2개일 때

                            => 소수입니다.

      else

               => 소수가 아닙니다.

 

나누어떨어지는게 2개뿐이라면 소수다. 

문제 해결!

 

 

 

 

 


 

 

 

<생각해보기>

위와 똑같은 방법으로 만들면 되는데

이제 while문을 이용해  입력한 수가 2보다 작으면 다시 반복하게 만들자.

첫번째 문제랑 약간 다르게 if문 조건 순서를 바꿨어요.

if문에 2이상 조건을 주고 else문에서 잘못입력 >다시 입력으로 반복문을 돌게 만들었습니다.

isTrue 설명*
while문은 true일 때 계속 돈다.
boolean isTrue를 처음에 false로 설정해놓고 시작한다.
while 조건에는 isTrue 앞에 !를 넣어 false값을 true로 바꾸고,
반복을 끝내고싶은순간에 isTrue =true로 설정해주면 반복문을 종료한다.
(isTrue가 true로 바뀌고 다시 반복문으로 돌아갔을 때 !를 만나 false로 바뀌면서 반복문이 종료됨)

해결~!


<생각해보기>

소수를 구하는 방법은 위를 참고,

2부터 입력한 수까지 소수인지 아닌지를 검사하면서(반복문 사용)

COUNT를 활용해 개수를 센다.

잘못입력했습니다까지는 잘 나오는데 반복문에서 출력하는게 문제인거같다.

 

 

 

<< 정답 >>

카운트를 초기화시켜주질 않아서 계속 붙잡고 있던 문제였습니다. 

반복문이 안돌아가길래 뭐가 문제인지 찾아보니

count1이 초기화되지 않아서 계속 증가했고,

count1 ==1인 경우가 최초 한 번 밖에 없었기때문에 출력이 안된거였어요.

 

 

아이큐+1