본문 바로가기

코딩테스트/프로그래머스

[Level 1][C++] 소수의 합

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

long long solution(int N) {
        long long sum = 0;
        bool *arr = new bool[N + 1];

        for (int i = 0; i < N + 1; i++)
                arr[i] = true;

        for (int i = 2; i <= sqrt(N); i++)
        {
                if (!arr[i])
                continue;
                for (int j = i * i; j <= N; j += i)
                arr[j] = false;
        }

        for (int i = 2; i < N + 1; i++)
                if (arr[i])
                        sum += i;

        long long answer = sum;

        return answer;
}