인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

홍정모의 따라하며 배우는 C언어

7.6 소수 판단 예제

7분 20초 num의 소수 존재유무 예제 질문드립니다.

작성

·

202

0

7분 20초 num의 소수 존재유무 예제 질문드립니다.

 

for (unsigned div = 2; div < num; ++div)

{

if (num % div == 0)

isPrime = false;

}

 

이 부분에서 반복 조건이 (div < num) 하나밖에 없는데도 num의 소수 존재 유무를 알 수 있는 이유가 어떤건가요?

예를 들어 num이 숫자 9라면 div가 2일때는 isPrime = true였다가 div 3일때는 isPrime = false로 바뀌고 다시 div가 4일때는 isPrime = true로 바뀌어서 반복조건에 (div < num) 하나만 있으면 isPrime이 제대로 된 값을 갖지 못하는것 아닌가요?

제가 생각하기에는 조건에 (div < num) && (isPrime == true)가 있어야 한다고 생각했는데 강의에 나온대로 코딩하면 문제없이 잘 이루어지는게 이해가 안되서 질문드립니다.

답변 2

0

감사합니다

0

안녕하세요, 

if문은 참이 아닐 경우, 코드를 실행하지 않습니다.

div가 4일때는 isPrime = true로 바뀐다고 하셨는데,

사실 코드 자체가 실행되지 않기 때문에,

한 번 false로 바뀐 isPrime변수는 다시 true가 되지 않습니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기