Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <numeric>
- #include <cmath>
- std::vector<int> GetPrime(unsigned int n) {
- std::vector<int> ret(n - 2 + 1);
- std::iota(std::begin(ret), std::end(ret), 2);
- int sqr = sqrt(n);
- for (int i = 0; i <= sqr; i++) {
- int a = 2;
- while (ret[i] * a <= n) {
- ret.erase(std::remove(ret.begin(), ret.end(), ret[i] * a), ret.end());
- a++;
- }
- }
- return ret;
- }
- std::vector<int> GetPrime2(unsigned int n) {
- std::vector<int> ret;
- std::vector<bool> prime(n+1);
- int sqr = sqrt(n);
- for (int i = 2; i <=n; i++) {
- if (!prime[i]) {
- ret.push_back(i);
- if (i <= sqr) {
- int a = 2;
- while (i * a <= n) {
- prime[i * a] = true;
- a++;
- }
- }
- }
- }
- return ret;
- }
- int main()
- {
- std::vector<int> a = GetPrime(100);
- std::vector<int> b = GetPrime2(100);
- for (int i = 0; i < b.size(); i++) {
- std::cout << a[i]<<" "<<b[i] << std::endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement