2,3,5,7만 확인하시면 안되고
100이라면 10까지는 확인해주어야합니다.
예를들어 16이 소수인지 아닌지 알기 위해서는 2부터 4까지 나누어떨어지는 수가 있는지 확인해주셔야합니다.
소수의 약수 2개중 1은 항상 포함되어있기 때문에 확인해주실 필요 없습니다.
왜 4까지 나누어봐야하냐면,
1,2,4,8,16을 보시면, 2와 8은 짝을 이루기 때문에, 2로 나누어떨어지면, 8로도 나누어 떨어지게 됩니다.
즉 어떤수가 x라면, x의 제곱근까지만 순회하면서 나누어지는 수를 구하면
저절로 모든 약수를 구하게 되는것이기 때문에, 반복문을 돌려서 2부터 int(x제곱근)까지 나누어보는
(ex) 보수적으로 16이라면 5까지, 27이라면 6 까지 나누어보는 방식으로 해보면 될 것 같습니다.)
코드를 구현해보시면 좋으실 것 같습니다.
shikwon96 2년 전
1일 경우 합산하지 않음
2,3,5,7 일 경우 합산
그외의 경우 2,3,5,7로 나누어 떨어지지 않으면 합산
이렇게 구성했는데 어떤 부분이 틀렸는지 알려주시면 감사하겠습니다