책 내용 질문하기
책을좀 똑바로 만드세요
도서
2017 시나공 정보처리기능사 실기
페이지
63
조회수
178
작성일
2017-07-05
작성자
탈퇴*원
첨부파일

아니 어이가 없어서

왜 디버깅값이

a K J MOD(K,J) HAP

7 2 2 0 0

이죠

MOD로 나눠서 0으로 떨어지면 Y이고 k랑 J랑 같으면 K를 HAP에 더하는데 왜 HAP이 0이에요 2가맞죠

그리고 답안지를 똑바로 만드세요 알지못하게 생략한부분도 있잖아요

답변
2017-07-06 09:19:43

안녕하세요.

A에 7이 입력되었다고 가정하신 내용이네요.

A에 7이 입력된 후

HAP는 소수의 합이 누적될 변수이므로 0으로 초기화를 합니다. ← HAP은 초기값부터 저장되므로 처음에 0으로 시작합니다.

K는 소수인지 판별할 숫자가 저장될 변수로 소수는 2부터 판별하므로 K를 2로 초기화합니다.

K는 2부터 1씩 증가하면서 A까지, 즉 7까지 변화하면서 소수 판별에 사용합니다.

J는 소수인지 판별할 때 나눌 값, 즉 제수가 저장될 변수입니다. 제수도 2부터 시작합니다. 그러므로 J도 2로 초기화합니다.

현재

A HAP K J

7 0 2 2

가 저장된 상태입니다.

MOD(K, J) → K를 J로 나눈 나머지를 확인합니다. K는 2이고 J도 2이므로 나머지는 0입니다.

나머지가 0이라면 현재의 K는 소수일 가능성이 있습니다. 나머지가 0일 때 K와 J, 즉 제수와 피젯수가 같으면 소수입니다.

그렇지 않으면 J의 배수입니다.

현재

A HAP K J MOD(K,J)

7 0 2 2 0

가 저장된 상태입니다.

K = J → 소수인지 판단하는 부분입니다. K와 J가 같으면 소수입니다. 소수라면 HAP에 K를 누적해야 합니다.

HAP = HAP + K에 의해 HAP은 2가 됩니다.

현재

A HAP K J MOD(K,J)

7 2 2 2 0

가 저장된 상태입니다.

K < A → K가 A, 즉 7보다 작은 동안 소수 판별 작업을 수행합니다. 소수 판별을 한 후 K와 A를 비교하므로 결국 K가 7일 때까지 소수 판별 작업을 수행합니다.

아직 K가 A보다 작으므로 K를 1 증가시킨 후 소수 판별을 계속해서 수행합니다.

현재

A HAP K J MOD(K,J)

7 2 3 2 0

가 저장된 상태입니다.

K가 3일 때는

J는 2로 초기화된 후

MOD(K, J)가 1이므로 J를 증가시켜 J가 3일 때 MOD(K, J)가 0이 됩니다.

3도 소수이므로 HAP에 누적됩니다. HAP은 5가 됩니다.

아직 K가 A보다 작으므로 K를 1 증가시킨 후 소수 판별을 계속해서 수행합니다.

K가 4일 때는

J는 2로 초기화된 후

MOD(K, J)가 0인데 K와 J가 같지 않습니다. 즉 4는 2의 배수이므로 소수가 아니죠.

그래서 4는 HAP에 누적되지 않습니다.

아직 K가 A보다 작으므로 K를 1 증가시킨 후 소수 판별을 계속해서 수행합니다.

위와 같은 방법으로 K가 7일 때까지 소수 판별을 계속 수행한 후 마지막에 HAP에 저장된 값 17을 출력합니다.

디버깅 표의 변수들은 초기값부터 저장되어 표시됩니다. 이점 학습에 참고하세요.

또한 디버깅 표는 실제 시험장에서 시험지의 빈 여백을 이용해 디버깅하는 것에 대비하여 공간 절약 형태로 가로의 위치를 고려하지 않고 각 변수의 값 변화만 공백없이 위에서 부터 붙여서 작성하고 있으니 이점 참고하세요(교재 36쪽 잠깐만요 참고)

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

  • *
    2017-07-06 09:19:43

    안녕하세요.

    A에 7이 입력되었다고 가정하신 내용이네요.

    A에 7이 입력된 후

    HAP는 소수의 합이 누적될 변수이므로 0으로 초기화를 합니다. ← HAP은 초기값부터 저장되므로 처음에 0으로 시작합니다.

    K는 소수인지 판별할 숫자가 저장될 변수로 소수는 2부터 판별하므로 K를 2로 초기화합니다.

    K는 2부터 1씩 증가하면서 A까지, 즉 7까지 변화하면서 소수 판별에 사용합니다.

    J는 소수인지 판별할 때 나눌 값, 즉 제수가 저장될 변수입니다. 제수도 2부터 시작합니다. 그러므로 J도 2로 초기화합니다.

    현재

    A HAP K J

    7 0 2 2

    가 저장된 상태입니다.

    MOD(K, J) → K를 J로 나눈 나머지를 확인합니다. K는 2이고 J도 2이므로 나머지는 0입니다.

    나머지가 0이라면 현재의 K는 소수일 가능성이 있습니다. 나머지가 0일 때 K와 J, 즉 제수와 피젯수가 같으면 소수입니다.

    그렇지 않으면 J의 배수입니다.

    현재

    A HAP K J MOD(K,J)

    7 0 2 2 0

    가 저장된 상태입니다.

    K = J → 소수인지 판단하는 부분입니다. K와 J가 같으면 소수입니다. 소수라면 HAP에 K를 누적해야 합니다.

    HAP = HAP + K에 의해 HAP은 2가 됩니다.

    현재

    A HAP K J MOD(K,J)

    7 2 2 2 0

    가 저장된 상태입니다.

    K < A → K가 A, 즉 7보다 작은 동안 소수 판별 작업을 수행합니다. 소수 판별을 한 후 K와 A를 비교하므로 결국 K가 7일 때까지 소수 판별 작업을 수행합니다.

    아직 K가 A보다 작으므로 K를 1 증가시킨 후 소수 판별을 계속해서 수행합니다.

    현재

    A HAP K J MOD(K,J)

    7 2 3 2 0

    가 저장된 상태입니다.

    K가 3일 때는

    J는 2로 초기화된 후

    MOD(K, J)가 1이므로 J를 증가시켜 J가 3일 때 MOD(K, J)가 0이 됩니다.

    3도 소수이므로 HAP에 누적됩니다. HAP은 5가 됩니다.

    아직 K가 A보다 작으므로 K를 1 증가시킨 후 소수 판별을 계속해서 수행합니다.

    K가 4일 때는

    J는 2로 초기화된 후

    MOD(K, J)가 0인데 K와 J가 같지 않습니다. 즉 4는 2의 배수이므로 소수가 아니죠.

    그래서 4는 HAP에 누적되지 않습니다.

    아직 K가 A보다 작으므로 K를 1 증가시킨 후 소수 판별을 계속해서 수행합니다.

    위와 같은 방법으로 K가 7일 때까지 소수 판별을 계속 수행한 후 마지막에 HAP에 저장된 값 17을 출력합니다.

    디버깅 표의 변수들은 초기값부터 저장되어 표시됩니다. 이점 학습에 참고하세요.

    또한 디버깅 표는 실제 시험장에서 시험지의 빈 여백을 이용해 디버깅하는 것에 대비하여 공간 절약 형태로 가로의 위치를 고려하지 않고 각 변수의 값 변화만 공백없이 위에서 부터 붙여서 작성하고 있으니 이점 참고하세요(교재 36쪽 잠깐만요 참고)

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

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