Advertisement
STANAANDREY

21/1/2020 pb1

Jan 21st, 2020
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void citeste(int& n, int a[])
  5. {
  6.     cin >> n;
  7.     for (int i = 0; i < n; i++)
  8.         cin >> a[i];
  9. }
  10.  
  11. int prim(int x)
  12. {
  13.     if ((x % 2 == 0 && x != 2) || x == 1)
  14.         return 0;
  15.  
  16.     for (int i = 3; i * i <= x; i += 2)
  17.         if (x % i == 0)
  18.             return 0;
  19.     return 1;
  20. }
  21.  
  22. int det(int x)
  23. {
  24.     if (x <= 2)
  25.         return 2;
  26.  
  27.     int p = 0;
  28.     if (prim(x))
  29.         return x;
  30.  
  31.     for (int nr = x - 1; nr >= 2 && !p; nr--)
  32.     {
  33.         if (prim(nr))
  34.             p = nr;
  35.     }
  36.  
  37.     for (int nr = x + 1; ; nr++)
  38.     {
  39.         if (prim(nr))
  40.         {
  41.             if (x - p < nr - x)
  42.                 return p;
  43.             return nr;
  44.         }
  45.     }
  46. }
  47.  
  48. void Scrie(int n, int a[])
  49. {
  50.     for (int i = 0; i < n; i++)
  51.         cout << a[i] << ' ';
  52. }
  53.  
  54. #define NMAX 100
  55. int a[NMAX], n;
  56.  
  57. int main()
  58. {
  59.     citeste(n, a);
  60.     for (int i = 0; i < n; i++)
  61.         a[i] = det(a[i]);
  62.     Scrie(n, a);
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement