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
끝