게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 관련 질문입니다 ㅠㅠ
게시물ID : computer_70486짧은주소 복사하기
작성자 : 미중년
추천 : 0
조회수 : 283회
댓글수 : 4개
등록시간 : 2012/12/31 17:25:26

 

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가 출력.

 ............

 

 

전 이런식으로 소스가 풀리는데... 실행결과는 제 생각하고 다르게 나옵니다..

 

실행결과는 제대로 나오니 위 소스는 올바른 소스이고, 제가 위 소스를 이해를 잘못하고 있는데요...

 

이해하기 쉽게 설명해 주실분 없으신가요ㅠㅠ?

 

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호