소스를 봐도 이해가 안가요
수리
2024.01.14
질문 제목 : 소스해석점...질문 요약 :소스해석점...질문 내용 :
#includestdio.h
#includeconio.h
int main()
{
int prime,num,count=1,count2=0;
for(prime=2;count11;prime++)
{
for(num=2;num=prime;num++)
{
if(prime%num==0)
count2++;
}
if(count2==1)
{
printf(\n%d번째 소수 %d,count,prime);
count++;
}
count2=0;
}
getch();
return 0;
}
대략 내용은 소수를 10번째 소수까지만 출력하라(열혈강의C 파트1 도전5)인대요
결과는 10번째소수까지 제대로 나오는대 소수가 2,3까지 출력되는건 이해되는대 4이상부터 출력되는게 이해안되네요;
제가 보기엔 소수는 아니지만 3번째소수로 4가 출력될거같은대 안되는이유좀...
-
핫자두 2024-01-14
수다님 말씀대로 저 소스를 그대로 분석해서 돌려보면 2 3 5 7 11...이 나오게 됩니다. 그 이유는 한번 나누어서 0이되면 count가 증가합니다. 소수의 개념이 1가 자기 자신만 있는 것입니다. 그러니 1로 나누어 떨어져 나머지 값이 0이 될때 count가 증가하여 1로 됩니다. 그리고 두번 나머지 값이 0으로 떨어지는 수는 소수가 아니게 되는 것입니다.