책 내용 질문하기
71쪽 소인수 분해하기 질문입니다.
도서
[2014] 정보처리기사 실기(산업기사 포함)
페이지
조회수
158
작성일
2014-05-28
작성자
탈퇴*원
첨부파일

안녕하세요. 정보처리 기사 실기를 대비해 시나공으로 공부중에 있습니다.

71쪽 소인수 분해 알고리즘 플로차트를 보는중에

순서도가 잘못된게 아닌지 궁금해서 문의드립니다.

상단 가로 1번을 보면 K=2 로 초기화하는 부분이 있습니다.

제곱근을 나누기 위해 1씩 커지는 값으로 알고 있는데

의문점은 그 밑의 화살표 입니다.

가로 4번을 보면 B=MOK 과 같이 기존 B값에 MOK을 대입하고

다시 제곱근을 구해 K로 나누는 부분이 있습니다.

다만 화살표가 K=2 초기화 되는 밑의 부분에 있는데

이렇게 되면 B의값을 이미 증가가된 K로 나누게 되지않나요?

제가 생각하기에 저 화살표가 K=2의 위에 있어야

B=MOK된 값을 다시 2부터 나눌수 있지 않을까 하는데...

혹시 제가 잘못 생각하거나 이해를 못하는 부분이 있다면 답변 부탁드리겠습니다.

좀더 쉽게 말씀드리기 위해 그림파일 첨부합니다.

그럼 행복한 하루되세요.

답변
2014-05-28 09:41:19

안녕하세요.

4번 동그라미는 피제수를 2부터 나누기 위해 D를 초기화되는 부분으로

소인수로 분해할 B가 소수라면 즉 NMG가 0이 아니라면 10번 동그라미 과정에서 NO가 되어 D가 증가됩니다.

하지만 소수가 아니라면 NMG가 0이 되어 소인수 분해되는 과정이 진행되는데,

예를 들어 50을 소인수 할 때 먼저 2로 나눈 나머지가 0이므로 소인수 분해 값으로 A배열에 2가 저장된 후

몫인 25가 B에 저장됩니다. 이때 아직 D가 2이므로 다시 D를 초기화할 필요없이 다음 값인 25(B)를 D로 나누게 되므로 결국 2부터 나누게 되는 것이죠.

25를 나누는 과정에서 나머지가 0이 아니므로 D가 2~5까지 증가되면서 진행됩니다. D가 5일 때 나머지가 0이 되므로 A배열에 5가 저장된 후 몫인 5가 B에 저장됩니다. 이후 E, 즉 현재 몫인 5의 제곱근이 2인데 이는 현재 D 값보다 2작으므로 B 자체가 소인수가 되어 7번 동그라미 과정을 거친 후 A배열에 5가 저장되어 최종적으로 2, 5, 5의 소인수 분해 과정이 완료됩니다.

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

"
  • *
    2014-05-28 09:41:19

    안녕하세요.

    4번 동그라미는 피제수를 2부터 나누기 위해 D를 초기화되는 부분으로

    소인수로 분해할 B가 소수라면 즉 NMG가 0이 아니라면 10번 동그라미 과정에서 NO가 되어 D가 증가됩니다.

    하지만 소수가 아니라면 NMG가 0이 되어 소인수 분해되는 과정이 진행되는데,

    예를 들어 50을 소인수 할 때 먼저 2로 나눈 나머지가 0이므로 소인수 분해 값으로 A배열에 2가 저장된 후

    몫인 25가 B에 저장됩니다. 이때 아직 D가 2이므로 다시 D를 초기화할 필요없이 다음 값인 25(B)를 D로 나누게 되므로 결국 2부터 나누게 되는 것이죠.

    25를 나누는 과정에서 나머지가 0이 아니므로 D가 2~5까지 증가되면서 진행됩니다. D가 5일 때 나머지가 0이 되므로 A배열에 5가 저장된 후 몫인 5가 B에 저장됩니다. 이후 E, 즉 현재 몫인 5의 제곱근이 2인데 이는 현재 D 값보다 2작으므로 B 자체가 소인수가 되어 7번 동그라미 과정을 거친 후 A배열에 5가 저장되어 최종적으로 2, 5, 5의 소인수 분해 과정이 완료됩니다.

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

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