Advertisement
fahad005

Untitled

Jun 24th, 2021
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. //
  4. #define ll long long
  5. #define ull unsigned long long
  6. #define pb push_back
  7. #define mx 100010
  8. #define mod 1000000007
  9. #define inf INT_MAX
  10. #define pi acos(-1)
  11. #define endl '\n'
  12. #define fin freopen("input", "r", stdin)
  13. #define Fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
  14. //
  15.  
  16. set<ll> se;
  17. vector<ll> v;
  18.  
  19. void sieve()
  20. {
  21.     bool isprime[mx];
  22.     for (int i = 0; i <= mx; i++)
  23.     {
  24.         isprime[i] = true;
  25.     }
  26.     for (int i = 3; i * i <= mx; i += 2)
  27.     {
  28.         if (isprime[i])
  29.         {
  30.             for (int j = i * i; j <= mx; j += i + i)
  31.             {
  32.                 isprime[j] = false;
  33.             }
  34.         }
  35.     }
  36.     v.pb(2);
  37.     for (int i = 3; i <= mx; i += 2)
  38.     {
  39.         if (isprime[i])
  40.         {
  41.             v.pb(i);
  42.         }
  43.     }
  44. }
  45.  
  46. void prime_divisor(ll x) {
  47.     vector<ll>::iterator it;
  48.     for (it = v.begin(); it != v.end(); it++) {
  49.         if (*it > x) break;
  50.         else if (x % *it == 0) {
  51.             se.insert(*it);
  52.             se.insert(x / *it);
  53.         }
  54.     }
  55. }
  56.  
  57. int main() {
  58.     sieve();
  59.     ll t, a, b;
  60.     cin >> t;
  61.  
  62.     scanf("%lld %lld", &a, &b);
  63.  
  64.     ll x = sqrt(a);
  65.     prime_divisor(x);
  66.     x = sqrt(b);
  67.     prime_divisor(x);
  68.  
  69.     for (ll i = 1; i < t; i++) {
  70.         scanf("%lld %lld", &a, &b);
  71.  
  72.         for (auto it1 = se.begin(); it1 != se.end(); it1++) {
  73.             if (a % *it1 == 0 || b % *it1 == 0) {
  74.                 break;
  75.             }
  76.             else {
  77.                 se.erase(it1);
  78.             }
  79.         }
  80.     }
  81.  
  82.     if (se.size() >= 1) cout << *se.begin() << endl;
  83.     else cout << -1 << endl;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement