Advertisement
STANAANDREY

perechi

Feb 11th, 2020
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int NMAX = 12500000;
  5. bool primes[NMAX];
  6.  
  7. inline void precompute()
  8. {
  9.     memset(primes, true, sizeof(primes));
  10.  
  11.     primes[1] = primes[0] = false;
  12.     for (int i = 1; i * i <= NMAX; i++)
  13.         if (primes[i])
  14.         {
  15.             for (int j = i * i; j <= NMAX; j += i)
  16.                 primes[j] = false;
  17.         }
  18. }
  19.  
  20. bool used[NMAX];
  21. inline void solve(const int n)
  22. {
  23.     for (int i = 1; i < n * 2; i++)
  24.         if (!used[i])
  25.         {
  26.             for (int j = i + 1; j <= n * 2; j++)
  27.                 if (!used[j])
  28.                 {
  29.                     int sum = i * i + j * j;
  30.                     if (primes[sum])
  31.                     {
  32.                         used[j] = true;
  33.                         cout << i << ' ' << j << '\n';
  34.                         break;
  35.                     }
  36.                 }
  37.         }
  38. }
  39.  
  40. int main()
  41. {
  42.     freopen("perechi.in", "r", stdin);
  43.     freopen("perechi.out", "w", stdout);
  44.     int n;
  45.     cin >> n;
  46.     precompute();
  47.     solve(n);
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement