김지혜님 안녕하세요?
질문에 답변드립니다.
먼저 3번 문제에 대한 답변입니다.
만약에 K 값이 6이라면 6은 소수가 아니지요?
순서도를 잘 돌려보시면 K값이 6이라면 J값이 2일때 벌써 나누어 떨어집니다.
그러면 K = 6 , J = 2 이므로 K와 J가 같지 않지요?
그러므로 NO 방향으로 진행되면서 6은 소수가 아니라고 판단하는 겁니다.
그러나 K가 7인 경우를 디버깅 해보면
J 값이 2부터 시작해서 계속 나누어도 나눠떨어지지 않습니다.
J 값은 2 , 3, 4, 5, 6, 7 까지 증가할겁니다.
J값이 7이 되었을 때 나누어 떨어지네요.
K값도 7이고 , 이때 J 값도 7입니다.
다시 말하면 나눠 떨어지는 약수가 자신밖에 없는거지요. 그러므로 소수로 판별합니다.
K값이 8이라면 J값은 2일때 나누어 떨어집니다.
더 진행할 필요없이 K와 J가 같지 않으므로 소수가 아니라고 판별하고 다음으로 넘어가는 겁니다.
이해가 되셨을까요? ^^
두번째 질문에 대한 답변입니다.
X변수를 Z-1 까지 돌려준 이유는 , 결론부터 말씀드리면 Z 까지 돌려줘도 됩니다.
그러나 가장 큰 소수 자신의 합은 그 수보다 커지기 때문에 Z번지값끼리의 합은
계산하지 않아도 되기 때문이지요. ^^
10보다 작은 소수는 2, 3, 5, 7 이됩니다.
마지막 수 7 = 7 은 10보다 큽니다. ^^
다른 경우도 모두 따져보면 가장 큰 소수의 합은 어짜피 그 수보다 커져버리기 때문에
Z-1번지 까지만 돌려준거지요.
물론 Z번지까지 돌려줘도 상관 없습니다. ^^
이해가 되셨을까요?
위 설명을 잘 읽어보시구요.
혹시라도 이해가 안되시면 다시 질문 주세요.
마지막까지 차분히 정리하셔서 좋은 결과 있으시길 기원합니다. ^^
드디어 알고리즘 실전 모의고사 다 풀었어요.
근데 실전 모의고사 3일차에서요..
3번이요. 일단 답은 맞앗어요. 들어갈 게 그거밖에 없어서 찍은 수준..
근데요.. J=K일 때 소수라는 것이 이해가 안되요.
왜냐면요.. 만약에 J=K=4일 때 MOD(K,J)=0인데 K는 소수가 아니잖아요.........
그리고 4번도 답은 맞았어요. X,Z까지 돌리는거.. 근데 전 그게 이해가 안되는 게 아니라 위에 X=1,Z-1까지 돌리는 게 이해가 안되요. 만약에 Z=4라면 X=1,2,3 이 될거고.. 그러면 Y=1,2,3,4 이기 때문에 X=Y=4일 때 더해줄수가 없잖아요..
알려주세요.. |