Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: pinto
Problemset: จำนวนเฉพาะ (2560)
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-06 15:39:26
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// Returns true if target is NOT in the list (i.e., not marked composite)
bool isPrime(int target, vector<int>& numbers) {
return find(numbers.begin(), numbers.end(), target) == numbers.end();
}
// Mark all multiples of i (starting from i*i) as composite
void markComposites(int i, int n, vector<int>& arrayList) {
for (int multiple = i * i; multiple < n; multiple += i) {
arrayList.push_back(multiple);
}
}
int main() {
vector<int> arrayList;
int n;
cin >> n;
for (int i = 2; i < n; i++) {
if (isPrime(i, arrayList)) {
cout << i << endl; // i is prime, print it
markComposites(i, n, arrayList); // mark its multiples
}
}
return 0;
}