되는대로 살자

[C언어 기출문제&풀이] 에라토스테네스의 체 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 에라토스테네스의 체

malu 2010. 11. 2. 22:02

n 이 입력으로 주어진다. 2 부터 n 까지의 소수(prime number)를 출력하는 문제이다.

입력

입력되는 수 n 은 2 이상 10000 이하의 자연수이다.

출력

2 부터 n 까지( 2 와 n 포함 )의 모든 소수를 한 줄에 출력한다.

입출력 예

입력

10

출력

2 3 5 7

풀이 : 1부터 입력값 까지 반복문을 실행하면서 소수를 찾는다.
소스코드
01 #include <stdio.h>
02   
03 int sosu(int n);
04   
05 int sosu(int n)
06 {
07     int i;
08      for(i = 2;i < n;i++){
09       if (n%i == 0) break;
10    }
11    if (i == n) return 1;
12    else return 0;
13 }
14   
15 int main()
16 {
17     int n,i;
18     scanf("%d",&n);
19     for(i=2;i<=n;i++)
20     {
21         if(sosu(i)) printf("%d ",i);
22     }
23 }