2부터 시작해서 n까지 범위로 잡고 n에서 나누기 시작합니다.
물론 같은수가 여러번 나누어 질 수 있기 때문에 while문으로 조건에 맞는 동안에는 계속 나눕니다.
그렇게 n이 1이 될 때까지 나누게 된다면,
정답에 추가된 값은 자연스럽게 소수가 됩니다.
왜냐구요?
어떤 수가 나눠진다고 했을 때, 나누어질때까지 while문을 계속 돌리기 때문입니다.
합성수의 원천은 소수의 곱으로 이루어져있기 때문에, 첫 소수인 2부터 시작해서 2로 나눌 수 있을 때 까지
계속 n으로 나누고, 그 다음 수로 올려서 반복하면, 자연스럽게 나누어지는 수는 소수만 해당됩니다.
애초부터 소수의 정의가 그러기에, 당연한 결과가 됩니다.
이 문제는 이런 기본적인 수학적 바탕을 깔고, 그걸 코드로 구현가능한지를 물어보고 싶어하는 것 같습니다.
감사합니다. 감이 오지 않았는데 시원하게 풀렸네요.