강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

거북이님의 프로필 이미지
거북이

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

13. 가장 많이 사용된 자릿수

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를 가지고 설명한 것을 참조하세요.

거북이님의 프로필 이미지
거북이

작성한 질문수

질문하기