나연욱님 안녕하세요?
질문에 답변드립니다.
첫번째 질문에 대한 답변입니다.
결론을 말씀드리면 SU/J 로 약수인지 판별할수 없습니다.
약수를 판별하는 가장 중요한 원리는 나누어 떨이지는지 확인하는 것입니다.
다시 말하면 나머지를 구하여 나머지값이 0인지 확인하여야 합니다.
그러나 말씀하신 SU/J 를 연산하면 몫 밖에 나오지 않습니다.
REM = INT(SU/J) 라면 예를 들어 SU 변수 값이 6이고 J가 2라면
REM 변수에는 6을 2로 나눈 몫 3이 저장됩니다.
이것으로 2가 6의 약수인지 판별할 수 없습니다.
필요한 것은 나머지값입니다.
따라서 REM = SU - INT(SU/J) * J 를 해야 6을 2로 나눈 나머지 0이 REM 변수에
저장됩니다. 그래야만 2는 6의 약수임을 판별할 수 있는거지요.
조금 혼동하고 계신 듯 합니다. ^^
3번 분기문의 경우 J > 3 을 만족할 때 YES 방향으로 진행되어 반복이 종료됩니다.
그런데 만약 J >= 3 으로 분기문을 작성하게 되면 J가 3일 때 YES방향으로 종료되기
때문에 3으로 나누는 과정은 처리되지 않습니다.
J값이 3일때 NO방향으로 진행되어야 3도 처리가 되지요.
따라서 J > 3 으로 분기문이 작성되어야 3일 때 NO 방향으로 진행되고
4가 되면서 YES방향으로 종료가 됩니다.
그래야만 1 , 2 , 3 까지 처리가 되는 것입니다.
알고리즘은 기본기가 탄탄해야 뒤쪽에서 힘들지 않게 학습하실 수 있습니다.
위 내용을 잘 읽어보시고, 완벽히 이해를 하셔야 합니다.
검색해 보셨겠지만 15강에 대한 해설영상을 같이 올려드립니다.
참고하시구요.
활기찬 하루되세요. ^^
|