본문 바로가기

c언어 알고리즘 및 코드

소수 출력하는 코드

정말 랜만에 c언어 코드 게시물을 올린다. 지금 올리는 이유는 조회수가 잘나오고 이 글을 쓰는 지금 잠이 안오고 기본에 충실해질 필요도 있다는것을 느꼈기 때문이다!! 하하하하

 

코드를 먼저 보도록 하자.

#include <stdio.h>
 
int main()
{
	int a=0;
	for(int n=2; n<=1000; n++)
	{
		for(int i=2; i<n; i++)
		{
			if(n%i == 0){
				a=1;
				break;
			}
		}
		if (!a)
		{
			printf("%d\n", n);
		}
		a=0;
	}
	return 0;
}

이 수는 2부터 1000까지의 소수를 찾는 코드이다. 

먼저 n이라는 변수를 설정해주었다. n은 2부터 1000까지의 수를 반복해서 대입해주는 반복문에 사용될 변수이다.

또한 i이라는 변수를 설정해주었다. i은 n보다 작고 n의 약수를 찾도록 해주는 반복문에 사용될 변수이다.

a라는 변수는 반복문을 초기화하는데 사용된다. 

 

조건문을 자세히 보도록하자.

 

if(n%i == 0){
		a=1;
		break;
}

만약 n과 i의 값을 나눴을때 나머지가 0이면 a가 1이 되고 반복문은 깨진다. 다시 0부터 시작하는것이다.

if (!a)
{
	printf("%d\n", n);
}

여기서 사용된 !는 논리연산자중 하나로 a가 참이면 거짓으로, a가 거짓이면 참으로 인식하게 하는 연산자이다.

사실 이게 뭔말인지 잘 모르겠다.

이것은 소수를 출력하게하는 조건문이다. a가 0(참)이면 소수를 출력하라는 그런 뜻으로 해석하면 반절 이상은 이해한것으로 봐도 무방하다.

 

아 그리고 이 조건문 뒤에는 반드시 a의 값을 초기화할 필요가 있다.

그래야 반복문이 다시 초기화 후 실행될테니 말이다.

 

오늘은 여기까지!! 안녕히주무쇼