인프런 커뮤니티 질문&답변
break를 넣지 않으면 3,4,5,-1이 출력되는 이유가 궁금합니다.
작성
·
287
1
n,k의 값을 6과 3으로 지정했습니다.
13분10초의 코드에 break를 빼고 실행해보니
3,4,5,-1이 출력이 되는 이유를 모르겠습니다.
제가 예상한 답은 3,-1입니다.
왜냐하면 cnt==k가 되는 순간은 3이고 4,5는 해당하지 않으니까요.. 반복문을 다 돌고나서 else문이 실행되는 -1까지
3,-1이 정상 아닐까요..?
답변 4
1
6의 약수는 [1, 2, 3, 6]입니다.
그래서 흐름을 설명할깨요.
n는 6, k는 3, 6번반복하니까 i는 1, 2, 3, 4, 5, 6여기까지는 괜찮죠? i가 ?의 경우
i = 1: 6 % 1 == 0 -> count += 1, count == 1
i = 2: 6 % 2 == 0 -> count += 1, count == 2
i = 3: 6 % 3 == 0 -> count += 1, count == 3 == k, print(i)
i = 4: 6 % 4 == 2 -> count == 3 == k, print(i)
i = 5: 6 % 5 == 1 -> count == 3 == k, print(i)
i = 6: 6 % 6 == 0 ->count += 1 count == 4 != k
for loop end! -> else: print(-1)
결과 3, 4, 5, -1
0
0






우와 저도 이렇게 세세하게 분석해보는 습관을 들여야겠어요 ! 꼼꼼한 답변 너무 감사합니다 !!