책 내용 질문하기
2017년 1회 모의고사A형 문제3번질문입니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
조회수
124
작성일
2017-06-18
작성자
탈퇴*원
첨부파일

강의도없고해서..

답안만보고 이해가 안되서 질문드립니다.

문제3번을 보면 아무런 근거도없는데.. 어떻게 바로 1번을 구하고 2번을 구하는지 모르겠네여..

답을 보니까 1번 K%J! =0

2번 K==J 이게 답이라는데

무슨근거로 어떻게 나왔는지 모르겠네요

디버깅도 답이 나온시점에서는 의미가없지않나요.

1번 2번이 어떻게 나왔는지

아니면 경우의수를 다 디버깅으로 걸러내는건지..

답변 부탁드립니다.

답변
2017-06-19 13:44:42

안녕하세요.

문제에서 소수의 합을 추력하기 위한 프로그램이라는 단서와 각 변수의 용도가 제시되어 있습니다.

k는 소수인지 판별할 숫자가 저장될 변수이고

j가 소수인지 판별할 때 사용할 제수가 저정될 변수라고 제시되었습니다.

k가 2로 초기화된 것은 소수는 1보다 크며 1과 자기 자신으로만 나눠서 0이 되는 수 입니다.

즉 소수인지 판별할 숫자를 2부터 1씩 증가하면서 나눠보다 나머지가 0이 나올 때 그 나누는 값과 나눠지는 값이 같으면 소수인 것입니다.

왜냐하면 소수는 1과 자기 자신으로만 나눠지는 수이므로 자기 자신으로 나누질 때 즉 나머지가 0일 때 나누는 수와 나눠지는 수가 같아집니다.

while ( ) != 0

이 부분의 조건이 만족할 때 j를 1 증가시킵니다.

즉 무언가가 0이 아니면 j를 증가시키는데, j는 k를 나눠볼 제수가 저장될 변수라고 했으니 제수를 증가하는 경우를 생각하면 됩니다.

제수는 언제 증가하냐면 소수인지 판별할 숫자인 k를 j로 나눠서, 즉 k%j를 수행해서 나머지가 0이 아니면 그 다음 수로 나눠봅니다. 이 과정을 반복하다 나머지가 0일 때 비교합니다. 자기 자신과 같은지, 즉 k == j가 Yes이면 소수가 구해진 것이므로 그때의 k를 hap에 누적합니다.

이러한 과정을 입력한 값까지 반복 수행하면 됩니다.

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

  • *
    2017-06-19 13:44:42

    안녕하세요.

    문제에서 소수의 합을 추력하기 위한 프로그램이라는 단서와 각 변수의 용도가 제시되어 있습니다.

    k는 소수인지 판별할 숫자가 저장될 변수이고

    j가 소수인지 판별할 때 사용할 제수가 저정될 변수라고 제시되었습니다.

    k가 2로 초기화된 것은 소수는 1보다 크며 1과 자기 자신으로만 나눠서 0이 되는 수 입니다.

    즉 소수인지 판별할 숫자를 2부터 1씩 증가하면서 나눠보다 나머지가 0이 나올 때 그 나누는 값과 나눠지는 값이 같으면 소수인 것입니다.

    왜냐하면 소수는 1과 자기 자신으로만 나눠지는 수이므로 자기 자신으로 나누질 때 즉 나머지가 0일 때 나누는 수와 나눠지는 수가 같아집니다.

    while ( ) != 0

    이 부분의 조건이 만족할 때 j를 1 증가시킵니다.

    즉 무언가가 0이 아니면 j를 증가시키는데, j는 k를 나눠볼 제수가 저장될 변수라고 했으니 제수를 증가하는 경우를 생각하면 됩니다.

    제수는 언제 증가하냐면 소수인지 판별할 숫자인 k를 j로 나눠서, 즉 k%j를 수행해서 나머지가 0이 아니면 그 다음 수로 나눠봅니다. 이 과정을 반복하다 나머지가 0일 때 비교합니다. 자기 자신과 같은지, 즉 k == j가 Yes이면 소수가 구해진 것이므로 그때의 k를 hap에 누적합니다.

    이러한 과정을 입력한 값까지 반복 수행하면 됩니다.

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

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