• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

22.03.12 23:48 작성 조회수 163

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

chobocorder님의 프로필

chobocorder

2022.03.13

감사합니다

0

강민철님의 프로필

강민철

2022.03.12

안녕하세요, 

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

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

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

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