본문 바로가기

미래(2015-2016)/자습

소수 출력하기



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
    2015.09.07
    내용: 2이상의 정수를 입력받아서 1부터 입력받은 정수 까지의 모든 
            소수 구하기. 단, 한 줄에 5개씩 5칸 간격으로 출력
            (어떤 수의 약수가 1과 자기 자신뿐이면, 그 수를 소수라고 한다.)
            => 소수 판단 알고리즘
            1. 일단 소수라고 가정하고,
            2. 2부터 그 정수보다 하나 작은 수까지 하나라도 나누어 떨어지면 소수가 아님.
            3. 하나라도 나누어 떨어지지 않으면 그 숫자는 소수임.
            1-3까지는 하나의 정수에 대해서 소수를 판단하는 과정이고
            어떤 수까지 모든 수를 판별하기 위해서 1-3과정을 반복함.
*/
 
#include <stdio.h>
 
int main()
{
    int i, j, num, row; 
 
    printf("2이상의 정수를 입력해주세요 : ");
    scanf("%d"&num);
 
    while (1)
    {
        if (num < 2)
        {
            printf("잘못 입력하셨습니다. 2이상의 정수만 입력 가능합니다.");
            continue;
        }
            
        else
            break;
    }
 
    printf("%d의 소수는 \n", num);
 
    i = 2;
    row = 0;
    
    while (i <= num)
    {
        j = 2;
 
        while (j <= i-1)
        {
            if (i % j == 0 && i != j)
                break;
 
            if (j == i-1)
            {
                row++;
                row % 5 == 0 ? printf("%2d\n", i) : printf("%2d ", i);
            }
    
            j++;
        }
 
        i++;
    }
 
    printf("\n");
 
    return 0;
}
cs


c150907_primeNumber.c


'미래(2015-2016) > 자습' 카테고리의 다른 글

수민이가 내준 문제  (0) 2015.09.09
피라미드 출력하기  (0) 2015.09.08
전기요금 계산하기  (0) 2015.09.07
계산기  (0) 2015.09.03
자판기  (0) 2015.09.03