Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- template <class Generic>
- struct Array
- {
- Generic * arrayObj;
- int arrayObjCount;
- };
- Array<int> * GetPrimeNumbers(int n)
- {
- bool * eratostenePrimes = new bool[n + 1];
- for (int i = 2; i <= n; ++i)
- eratostenePrimes[i] = true;
- int eratostenePrimesCount = n - 1;
- for (int i = 2; i <= n; ++i)
- if (eratostenePrimes[i])
- for (int j = 2; i * j <= n; ++j)
- if (eratostenePrimes[i * j])
- {
- --eratostenePrimesCount;
- eratostenePrimes[i * j] = false;
- }
- Array<int> * returnArray = new Array<int>;
- returnArray->arrayObj = new int[eratostenePrimesCount];
- returnArray->arrayObjCount = 0;
- for (int i = 2; i <= n; ++i)
- if (eratostenePrimes[i])
- {
- returnArray->arrayObj[returnArray->arrayObjCount] = i;
- ++returnArray->arrayObjCount;
- }
- delete eratostenePrimes;
- return returnArray;
- }
- int main()
- {
- int n;
- cin>>n;
- Array<int> * primesArray = GetPrimeNumbers(n);
- for (int i = 1; i < primesArray->arrayObjCount; ++i)
- cout<<primesArray->arrayObj[i] - primesArray->arrayObj[i - 1]<<' ';
- delete primesArray;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement