| | | 제 목 | 알고리즘 7강 | | | 글쓴이 | 기사친구 | 작성일 | 2009-06-21 오전 1:14:09 | 조회수 | 1054 | | | 글공유 | |
| | | 김문정님 안녕하세요?
7강이 아니고 17강을 말씀하시는 듯 합니다. ^^
일단 A에 4를 입력받았다면 4이하의 소수의 합을 구하게 되는겁니다.
결과로 보자면 4이하의 소수는 2와 3이 있습니다.
따라서 2와 3의 합 5가 출력되는게 맞습니다.
4이하의 소수가 2와 3이라는 것이 이해가 안되시면 소수의 개념이 확실히
이해되시지 않으신거 아닌가 싶네요.
디버깅을 하자면
K변수는 2부터 입력받은 A 변수값 4까지 증가합니다.
1회전에 K값은 2가 됩니다.
J값도 2부터 시작됩니다. K를 J로 나누어서 나누어 떨어지는 지 확인합니다.
나누어 떨어지지요? K값 도 2 , J 값도 2로 같으므로 2는 소수입니다.
따라서 SUM에 2가 누적되지요.
2회전에 K값은 3이 됩니다.
J값은 2로 시작하지요. K를 J로 나누어 보면 3 나누기 2가 되므로 나누어 떨어지지
않습니다.
J가 3으로 증가합니다. K를 J로 나누어 보면 3 나누기 3이 되므로 나누어 떨어집니다.
K값 3과 J값 3이 같으므로 3은 소수입니다.
따라서 SUM 변수에 3이 누적되어 5가 됩니다.
3회전에 K값은 4가 됩니다.
J값은 2부터 시작하지요.
K값 4를 J값 2로 나누면 나머지가 0이 됩니다.
그런데 이 때 K값 4와 J값 2가 같지 않으므로 K값 4는 소수가 아니지요.
따라서 SUM에 누적하지 않고 순서도가 끝나게 됩니다.
따라서 SUM의 결과값은 5가 출력되는게 맞지요.
위처럼 디버깅이 됩니다.
어디 부분에서 혼동이 있으신건지 잘 생각해 보시길 바래요. ^^
열공하시구요.
행복한 주말되세요. ^^
맨마지막에요 디버깅 내용이요 A가4고 K가 4여서 합이 5란걸 출력됐는데요 디버깅설명에서요 소수가 2,3,4중 2와3이 소수라는데 왜 2와 3이 소수가 되서 합을해서 5라고 디버깅했나요? (그전에 합이 2였고 K값이 3이여서 합이 5가된건알겠는데 디버깅설명이 잘 모르겠어요)
소수의범위를 어떻게 잡은건가요?(디버깅할때요) 입력값이 4기에 2,3,4중 4이하 숫자가 2,3이니까...그래서 합이 5라는 건가요?(디버깅어떻게 해요??) 답변 부탁드릴께요... 귀찮게 해서 죄송해요....^^ | |
|
|