Sàng nguyên tố

Xem dạng PDF

Gửi bài giải

Điểm: 0,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++

Đề bài: Cho số nguyên ~n~ (~1 \leq n \leq 10^6~), in ra tất cả các số nguyên tố không quá ~n~.

Debug code sau:

#include <bits/stdc++.h>
using namespace std;

const int maxN = 1e6 + 1;

bitset<maxN> isPrime;
vector<int> primes;

void eratos() {
    for (int i = 2; i < maxN; i++) isPrime[i] = 1;
    for (int i = 2; i * i < maxN; i++) {
        if (!isPrime[i]) continue;
        for (int j = i * i; j < maxN; j += i) isPrime[j] = false;
        primes.push_back(i);
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n; cin >> n;
    eratos();

    for (int i = 0; i < primes.size() && primes[i] <= n; i++) cout << primes[i] << " ";

    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.