11653번 - 소인수분해
아아 a가 소수인 경우는 이해했는데 혹시 예제에 72를 넣었을 때 2 2 2 3 3 나오고 나서 끝나지 않는 이유를 모르겠습니다
혹시 알려주실 수 있을까요...?
아아 이거 코랩에 돌려봤는데 말씀하신것처럼 19같이 소수 넣어보니까 무한으로 돌아가더라구요ᅲᅲ
저도 Colab 환경에서 실행해봤는데 72를 넣었을 땐 문제가 없는 것 같습니다.
다만 소수가 아니더라도 예제에 있는 6, 9991 같은 경우에는 무한루프가 도는데
이 경우는 원래 수의 제곱근보다 더 큰 수를 소인수로 가지는 경우입니다.
루트 6은 2.xxxx.. 정도지만 6의 소인수 중에는 3도 있죠.
이런 경우에는 영원히 3을 못 찾고 무한루프에 빠집니다.
for 문의 범위를 제곱근까지가 아닌 자기 자신까지로 넓히거나(대신 속도는 느려짐),
for 문 안에서 소인수를 더이상 못 찾는 경우는 제곱근보다 더 큰 소인수가 딱 하나 남았다는 뜻이므로,
그 수(a의 값)를 출력해주고 끝마치는 식으로 해결할 수 있습니다.
자세한 설명 너무 감사드립니다!!
이해했습니다!
댓글을 작성하려면 로그인해야 합니다.
jellyrush0116 1년 전 0
sys를 써라해서 써봤는데 잘 모르겠습니다
while문을 어떻게 빠져나가야 할까요?