Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int n, v[501], maxim;
  6. bool vid[1001], ok = false;
  7.  
  8. void citire(int &n, int v[501])
  9. {
  10.     cin >> n;
  11.     for(int i = 1; i <= n; ++i) cin >> v[i];
  12. }
  13.  
  14. void afisare(int n, bool ok)
  15. {
  16.     if(ok == true)
  17.     {
  18.         for(int i = 2; i <= maxim; ++i)
  19.             if(vid[i] == true) cout << i << " ";
  20.     }
  21.     else cout << "Sirul Y este vid.";
  22. }
  23.  
  24. bool prim(int x)
  25. {
  26.     if(x < 2) return false;
  27.     if(x == 2) return true;
  28.     if(x % 2 == 0) return false;
  29.     for(int  i = 3; i * i <= x; i += 2)
  30.         if(x % i == 0) return false;
  31.     return true;
  32. }
  33.  
  34. bool F(int &a, int b, int putere)
  35. {
  36.     while(a % b == 0)
  37.     {
  38.         ++putere;
  39.         a /= b;
  40.     }
  41.     if(putere == 1) return true;
  42.     return false;
  43. }
  44.  
  45. void rezolvare(int n)
  46. {
  47.     for(int i = 1; i <= n; ++i)
  48.     {
  49.         int d = 2;
  50.         while(v[i] > 1)
  51.         {
  52.             if(F(v[i], d, 0) == true)
  53.             {
  54.                 vid[d] = true;
  55.                 ok = true;
  56.                 if(d > maxim) maxim = d;
  57.             }
  58.             ++d;
  59.         }
  60.     }
  61. }
  62.  
  63. int main()
  64. {
  65.     citire(n, v);
  66.     rezolvare(n);
  67.     afisare(maxim, ok);
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement