책 내용 질문하기
소인수 분해 알고리즘
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
195
조회수
53
작성일
2018-09-07
작성자
탈퇴*원
첨부파일

16번 상자 화살표가 3번과 4번 사이에 가야하는거아닌가요? 아니면 d=2로 초기화가 안는데요.

왜 이런지 자세히 설명 부탁드립니다.

검색해보니

안녕하세요.

D를 2로 초기에 B 값을 나눴을 때 나머지가 0인 경우는 짝수인 경우인데,

2로 나눠진 짝수는 이후 홀수의 몫을 갖게 됩니다.

그러므로 이 값을 다시 2부터 나눠도 나머지는 0이 아니므로 무조건 D는 +1이 되게 됩니다.

이러한 과정이 진행되므로 B를 2로 초기화하는 과정을 처음에 한 번만 수행해도 결과가 동일합니다.

하지만 교재의 알고리즘의 이해에서 언급한 소인수 분해 과정에 맞게 순서도를 연계하려면

질문 주신것처럼 D를 2로 초기화하는 과정이 반복문 안쪽으로 들어가는 것이 맞습니다.

오늘도 즐거운 하루 되세요

이런식으로 답변해놓으셨던데 B를 2로 초기화 왜하나요? 이 답변봐도 이해가 안가네요

그리고 페이지 183쪽 소수의 합구하기 알고리즘에서 만일 A에 1을 입력시켜도 합이 2가 나오는데 입력을 2이상 받겠다는 말이 문제에 없는데 오류 아닌가요?

답변
2018-09-10 15:51:07

안녕하세요. 길벗 수험서 운영팀입니다.

B를 2로 초기화 왜하나요?

[답변]

B를 2로 초기화하는 이유는 약수로 나눠진 값을 다시 2부터 차례대로 나누어 보아 또 다른 약수를 구하는 과정에서 필요하기 때문입니다.

예를 들어 18을 소인수 분해한다고 가정했을 때

1. 18을 2부터 18의 제곱근인 4(4.24...)까지 차례대로 나누어떨어지는 수를 찾으면 2입니다.

- 18/2 = 9

2. 9를 2부터 9의 제곱근인 3까지 차례대로 나누어떨어지는 수를 찾으면 3입니다.

- 9/3 = 3

3. 3은 2부터 3의 제곱근인 1(1.73)까지 차례대로 나누어떨어지는 수를 찾아야 하지만, 제곱근이 나누기를 시작하는 수인 2보다 작으므로, 3 자체가 소인수입니다.

위와 같은 과정으로 18을 소인수 분해한 결과가 2, 3, 3이 나오며, 1번·2번·3번의 각 과정에서 2부터 제곱근까지의 수를 나누어떨어지는 것을 찾기 위해 B를 2로 초기화시키는 것입니다.

행복한 하루되세요.^^

  • *
    2018-09-10 15:51:07

    안녕하세요. 길벗 수험서 운영팀입니다.

    B를 2로 초기화 왜하나요?

    [답변]

    B를 2로 초기화하는 이유는 약수로 나눠진 값을 다시 2부터 차례대로 나누어 보아 또 다른 약수를 구하는 과정에서 필요하기 때문입니다.

    예를 들어 18을 소인수 분해한다고 가정했을 때

    1. 18을 2부터 18의 제곱근인 4(4.24...)까지 차례대로 나누어떨어지는 수를 찾으면 2입니다.

    - 18/2 = 9

    2. 9를 2부터 9의 제곱근인 3까지 차례대로 나누어떨어지는 수를 찾으면 3입니다.

    - 9/3 = 3

    3. 3은 2부터 3의 제곱근인 1(1.73)까지 차례대로 나누어떨어지는 수를 찾아야 하지만, 제곱근이 나누기를 시작하는 수인 2보다 작으므로, 3 자체가 소인수입니다.

    위와 같은 과정으로 18을 소인수 분해한 결과가 2, 3, 3이 나오며, 1번·2번·3번의 각 과정에서 2부터 제곱근까지의 수를 나누어떨어지는 것을 찾기 위해 B를 2로 초기화시키는 것입니다.

    행복한 하루되세요.^^

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