Project Euler

Project Euler #10 : 이백만 이하 소수의 합

jyheo98 2020. 8. 7. 11:15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main() {
    vector<bool> isPrime(2000001);
    isPrime[1= 1;
    for (int i = 2; i <= 2000000; i++) {
        if (isPrime[i] == 0) {
            for (int j = i * 2; j <= 2000000; j += i) {
                isPrime[j] = 1;
            }
        }
    }
    llong ans = 0;
    for (int i = 2; i <= 2000000; i++) {
        if (!isPrime[i]) ans += i;
    }
    cout << ans;
    return 0;
}
cs

5초 쯤 걸렸다. 맞는 풀이일까?!