인프런 커뮤니티 질문&답변
15번
작성
·
150
0
for(int i =2; i <= num; i++) {
for(int j = 2; j <= i; j++) {
이런 식에서
제이 부분을 왜 i를 루트로 계산하는지 잘 모르겠습니다.
계산할 양이 반으로 줄어 드는 것이랑 루트로 계산하는 것이랑
무슨 관계인지요...
답변 1
0
김태원
지식공유자
어떤 숫자가 1과 자기자신 빼고 약수가 존재하는지 확인하는 것인데, 굳이 2부터 그 숫자 전까지 다 확인하는 것 보다는 그 숫자의 제곱근까지만 확인하면 됩니다.
예를 들어 i=36일 때 이 36이 소수인지 아닌지 확인하기 위해 j가 반복하는데, 그 확인하는 작업을 j가 2부터 35까지 반복하기 보다는 2부터 6까지만 반복하면서 j가 i의 약수인지 확인하면 된다는 것입니다.
제곱근까지만 확인하면 되는지 수학적 설명은 영상에서 36를 가지고 설명한 것을 참조하세요.





