188쪽설명에서보면 그 전 계산에 쓰인 수가 아니라 D를 2부터 차례대로 1씩 늘려가며 계산을하는것같은데
D를 2로 초기화 하지 않고 계속 늘려가며 쓰는 이유가 궁금합니다.
안녕하세요.
20의 소인수를 구한다고 가정한다면
2부터 나눠보므로 2는 나머지가 0이 되므로 소인수입니다.
매번 2부터 이므로 2로 나눠서 나머지가 0일 때는 D를 다시 2로 시작할 필요가 없습니다.
앞선 작업의 몫인 10을 피젯수로 하여 다시 D로 나눕니다.
역시 나머지가 이므로 소인수 처리를 하고 D를 다시 2로 시작할 필요가 없습니다.
앞선 작업의 몫인 5를 피젯수로 하여 다시 D로 나눕니다.
나머지가 0이 아니므로 비로소 이제 D를 증가합니다.
이와 같이 여러가지 경우의 값을 디버기을 해보면서 확인해 보세요.
처음부터 2로 나눠서 나머지가 0이 아닌 경우는 대부분 소수이며
그 이후는 3에 의해 나눠서 나머지가 0이 되는 경우이며, 나누려는 값 자체가 소인수인 경우입니다.
오늘도 즐거운 하루 되세요.
-
*2017-06-13 10:28:54
안녕하세요.
20의 소인수를 구한다고 가정한다면
2부터 나눠보므로 2는 나머지가 0이 되므로 소인수입니다.
매번 2부터 이므로 2로 나눠서 나머지가 0일 때는 D를 다시 2로 시작할 필요가 없습니다.
앞선 작업의 몫인 10을 피젯수로 하여 다시 D로 나눕니다.
역시 나머지가 이므로 소인수 처리를 하고 D를 다시 2로 시작할 필요가 없습니다.
앞선 작업의 몫인 5를 피젯수로 하여 다시 D로 나눕니다.
나머지가 0이 아니므로 비로소 이제 D를 증가합니다.
이와 같이 여러가지 경우의 값을 디버기을 해보면서 확인해 보세요.
처음부터 2로 나눠서 나머지가 0이 아닌 경우는 대부분 소수이며
그 이후는 3에 의해 나눠서 나머지가 0이 되는 경우이며, 나누려는 값 자체가 소인수인 경우입니다.
오늘도 즐거운 하루 되세요.