책 내용 질문하기
189p 플로차트와 코드 질문있습니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
189
조회수
37
작성일
2017-06-12
작성자
탈퇴*원
첨부파일

188쪽설명에서보면 그 전 계산에 쓰인 수가 아니라 D를 2부터 차례대로 1씩 늘려가며 계산을하는것같은데

D를 2로 초기화 하지 않고 계속 늘려가며 쓰는 이유가 궁금합니다.

답변
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이 되는 경우이며, 나누려는 값 자체가 소인수인 경우입니다.

오늘도 즐거운 하루 되세요.

  • *
    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이 되는 경우이며, 나누려는 값 자체가 소인수인 경우입니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.