50 이하의 소수를 구하는 소스입니다.
#include <stdio.h>
void main()
{
int i, j;
for (i = 2; i <= 950; i++)
{
for (j = 2; j < i; j++)
{
if ( i % j == 0)
break;
}
if ( i == j )
printf("%d\n", i);
}
}
실행결과는 제대로 나오는데 이해가 좀 힘드네요...
첫번째 루프시 i=2 가 되고, 두번째 for문에서 j=2이고 j(2) < i(2) 가 성립되지 않으므로 두번째 for문에서 { } 안의 내용은 실행되지 않고,
두번째 if문이 실행되어 i == j 가 성립되서 2로 출력.
두번째 루프시 i=3 가 되고, 두번째 for문에서 j=2이고 j(2) < i(3) 가 성립되므로 실행되고 if ( i % j == 0)은 성립하지 않고 j=3 이 됩니다.
두번째 if문에서는 i(3) == j(3) 이 성립되서 3이 출력.
세번째 루프시 i=4 가 되고, 두번째 for문에서 j=3이고 j(3) <i(4) 가 성립되므로 실행되고 if (i % j == 0)은 성립하지 않고 j=4 가 됩니다.
두번째 if문에서는 i(4) == j(4) 이 성립되서 4가 출력.
............
전 이런식으로 소스가 풀리는데... 실행결과는 제 생각하고 다르게 나옵니다..
실행결과는 제대로 나오니 위 소스는 올바른 소스이고, 제가 위 소스를 이해를 잘못하고 있는데요...
이해하기 쉽게 설명해 주실분 없으신가요ㅠㅠ?