에라토스테네스의 체

Esther·2023년 5월 20일
0

즐거운ㅋ코딩공부

목록 보기
8/8
// 문제
// 자연수를 입력받고 해당 숫자까지의 소수들을
// 에라토스테네스의 체를 이용하여 구하는 프로그램을 작성해보세요.
// 배열의 항목번호를 자연수라고 생각하고
// 소수면 O, 소수가 아니라면 X를 배열에 저장하세요.
//(단, 배열은 1부터 시작하며 100을 넘지 않도록 합니다.)

// 입력
// 한 개의 자연수가 주어집니다.

// 출력
// 저장한 배열을 출력합니다.

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int cnt = 0;
    int arr[101];

    char arr2[101];

    arr2[1] = 'X';
    for (int i = 2; i <= n; i++)
    {
        arr2[i] = 'O';
        arr[i] = i;
    }

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (arr[i] == 0)
            continue;

        for (int j = 2 * i; j <= n; j += i)
        {
            arr[j] = 0;
            arr2[j] = 'X'
        }
    }

    for (int i = 1; i <= n; i++)
    {
        cout << arr2[i];
    }

    return 0;
}

0개의 댓글