Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. ifstream in("elimin_prime.in");
  7. ofstream out ("elimin_prime.out");
  8.  
  9. const int lim = -1000000005;
  10.  
  11. int n;
  12. int ciur[9600];
  13. int nrPrime;
  14. int numere[100005];
  15. bool numbers[100005];
  16.  
  17. void ciurul(int n){
  18.     ciur[nrPrime++] = 1;
  19.     numbers[1] = true;
  20.     ciur[nrPrime++] = 2;
  21.     for (int i = 2; i <= n; i += 2) {
  22.         numbers[i] = true;
  23.     }
  24.  
  25.     for (int i = 3; i <= n; i += 2) {
  26.         if(!numbers[i]){
  27.             ciur[nrPrime++] = i;
  28.             for (int j = i; j <= n ; j += i) {
  29.                 numbers[j] = true;
  30.             }
  31.         }
  32.     }
  33.  
  34. }
  35.  
  36.  
  37. int main() {
  38.  
  39.     in >> n;
  40.  
  41.     ciurul(n);
  42.     for (int i = 1; i <= n; ++i) {
  43.         in >> numere[i];
  44.     }
  45.     bool ok = true;
  46.     while (ok){
  47.         ok = false;
  48.         int indPoz = 0;
  49.         int afis = 0;
  50.         int dist = ciur[indPoz++];
  51.         for (int i = 1; i <= n; ++i) {
  52.             if(numere[i] != lim){
  53.                 afis++;
  54.                 ok = true;
  55.                 if(dist - afis == 0){
  56.                     out << numere[i] << " ";
  57.                     dist = ciur[indPoz++];
  58.                     numere[i] = lim;
  59.                 }
  60.             }
  61.         }
  62.     }
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement