이번에 출제된 문제에서는 새로운 방식으로 소수를 판단하는 문제가 나왔습니다.
합계 : SUM, 임의정수 : N, 정수형으로번환 : INT()
소수의 합을 구하는 이 순서도의 풀이 순서는 2부터 N까지의 정수를 앞의 숫자부터 선택을 하여 선택한 숫자가 소수인지 판단을 하기 위해 소수를 판단할 수 있는 가장 작은 수 2부터 선택한 숫자까지 1씩 증가하면서 나누어 떨어지는 가를 알아봅니다
선택한 수보다 작은 수로 나누어 떨어지면 소수가 아니고 선택한 수까지 증가를 하게 되면 선택한 수는 소수가 됩니다.
이렇게 나온 소수를 합하고 다시 선택 숫자를 1증가하여 위로 가서 선택수가 N이 될 때까지 반복을 하면 됩니다.
②번의 답은 K/J가 되는 것입니다.
순서도를 위에서 부터 분석해 보겠습니다.
가장 먼저 소수의 범위가 될 N을 입력을 받습니다. 그리고 소수들을 합할 변수 SUM에 0으로 초기화를 합니다.
다음으로 해야 할 일은 소수를 판단하기 위해서 필요한 나누기할 수를 정해야 합니다. 우리는 소수를 판단하기 위해 2부터 N까지 1씩 증가를 할 것이기 때문에 나누기 할 수에 2를 먼저 초기화를 해야 합니다. ①번의 답 2 가 되는 것입니다.
다음으로 K를 나누면서 K가 소수인지를 판단 할 수를 정해야 합니다. 여기에서는 J를 2로 초기화를 해서 2부터 K까지 1씩 증가하며 K를 나누어 나머지가 있는지를 판단 할 것입니다.
다음으로 판단기호에서 INT(K/J) = 이라고 나와 있습니다. 처음에 언급 했듯이 나머지가 있는지를 판단하는 것들은 k%j = 0와 mod(k,j)=0 그리고 k-(k/j)*k = 0 가 있습니다. 그러나 이 문제에서는 이런 유형들과는 다르게 나누기를 하여 정수형으로 변환을 하고 있습니다. 이것은 몫을 구하는 것이기 때문에 0으로는 나머지가 있는지를 판단 할 수 없습니다.
다시 말하며 이 문제는 나누기를 하여 정수형을 한 것과 나누기를 하여 정수형을 하지 않은 값을 비교했을 때 소수부분이 똑같이 0 이어야 나누어 떨어진 것으로 판단을 한다는 것입니다.
이 판단 기호에서 N를 만나게 되면 바로 아래의 J = 으로 가게 됩니다. 판단기호에서 몫이 다르게 나왔다는 것은 나누어 떨어지지 않았다는 이야기 이기때문에 J를 1증가 해서 다시 나누기를 해봐야 합니다. ④번의 답은 J + 1 이 됩니다.
K가 소수라면 J = J + 1은 J 가 K와 같은 수가 될 때 까지 증가를 하게 되어 있습니다.
그래서 K와 J가 같은 수가 되어 나누기를 했을 때 나눈 몫들도 같아지게 되어 이 판단 기호를 빠져 나오게 됩니다.
빠져나와서 가장 먼저 할 일은 K가 자기 자신과 같은 수보다 작은 수에서 나누어 떨어졌는지를 판단하는 것입니다. 만약 나누어 떨어졌으면 소수가 아니기 때문에 합계를 더할 필요가 없습니다. K= 이라는 판단기호에는 K와 J가 같은지를 물어서 소수인지를 여기에서 판단하게 되는 것입니다. ③번의 답은 J 가 됩니다.
다음의 처리기호에서는 소수의 합을 구하고 있습니다.
합을 구한 후 다음 수가 소수인지를 검사하러 다시 올라 가야 합니다.
이런식으로 N까지 반복해서 합을 구해야 하기 때문에 K가 N까지 증가하는지 확인해야 합니다. 합을 구한 다음의 판단기호에 있는 ⑤번의 답은 N 이 됩니다.
K가 N보다 작을 때 다시 위로 올라가는 흐름에서 빈 칸에는 K를 증가시키는 곳이 다른 곳이 없기 때문에 이곳에서 K를 증가 시키면 됩니다. ⑥번의 답은 K = K + 1 이 됩니다.
이상으로 새롭게 소수판단방법이 들어간 문제를 풀어 봤습니다. 다음 시험에 소수와 관련된 문제가 나온다면 k%j = 0 , mod(k,j)=0 , k-(k/j)*k = 0 , INT(K/J) = K/J 중 무엇인지 확인 하세요.
출처 : http://stepo.tistory.com/89
(stepo의 컴퓨터)
'각종 실기시험 자료실 > - 정보처리기능사' 카테고리의 다른 글
유클리드호제법 기출문제 풀이 (0) | 2011.05.26 |
---|---|
2011년 정보처리 기능사 1월 시험 실기 기출문제 풀이 (0) | 2011.05.26 |
2006년도 출제 정보처리기능사 실기 알고리즘 기출문제입니다. (0) | 2010.03.12 |
2007년도 출제 정보처리기능사 실기 알고리즘 기출문제입니다. (0) | 2010.03.12 |
2008년도 출제 정보처리기능사 실기 알고리즘 기출문제입니다. (0) | 2010.03.12 |