Advertisement
LEGEND2004

check

Nov 21st, 2022
1,032
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5. typedef long double ld;
  6. #define int ll
  7. #define doube ld
  8. #define _FastIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
  9. #define pii pair<int , int>
  10. #define pb emplace_back
  11. #define endl '\n'
  12. #define all(x) x.begin() , x.end()
  13. #define rall(x) x.rbegin() , x.rend()
  14. #define F first
  15. #define S second
  16. const int mod = 1e9 + 7;
  17. const int MAXX = 2005;
  18. const int N = 2000;
  19.  
  20. int n;
  21. int ans = 0;
  22. bool p[MAXX];
  23. vector<int> v;
  24. vector<int>::iterator it;
  25.  
  26. int gcd(int a , int b){
  27.     while(a && b){
  28.         if(a > b)
  29.             a %= b;
  30.         else
  31.             b %= a;
  32.     }
  33.     return a + b;
  34. }
  35.  
  36. void sieve(){
  37.     p[2] = true;
  38.     for(int i = 3; i <= N; i += 2){
  39.         p[i] = true;
  40.     }
  41.     for(int i = 3; (i * i) <= N; i += 2){
  42.         if(p[i]){
  43.             for(int j = (i + i + i); j <= N; j += (2 * i)){
  44.                 p[j] = false;
  45.             }
  46.         }
  47.     }
  48.     v.pb(2);
  49.     for(int i = 3; i < N; i += 2){
  50.         if(p[i])
  51.             v.pb(i);
  52.     }
  53.  
  54. }
  55.  
  56. int f(int n , int x , int per){
  57.     int k = per;
  58.     int sum = 0;
  59.     for(int i = 1; i <= 21; i++){
  60.         it = upper_bound(all(v) , x);
  61.         int pos = it - v.begin();
  62.         int l = v[pos];
  63.         if((k * l * l) <= n){
  64.             sum += f(n , l , k);
  65.         }
  66.         k *= x;
  67.         if((k * x) > n)
  68.             break;
  69.         cout << k << endl;
  70.         sum += (((n / k) - (n / (k * x))) * (n / (k * x)));
  71.     }
  72.     cout << x << " " << per << " " << sum << endl;
  73.     return sum;
  74. }
  75.  
  76. signed main()
  77. {
  78.     _FastIO;
  79.     sieve();
  80.     cin >> n;
  81.     int ans = f(n , 1LL * 2 , 1LL * 1);
  82.     ans = (n * n) - (2 * ans);
  83.     int sum = 0;
  84.     for(int i = 1; i <= n; i++){
  85.         for(int j = 1; j <= n; j++){
  86.             if(gcd(i * i , j) == gcd(i , j * j)){
  87.                 sum++;
  88.             }
  89.         }
  90.     }
  91.     cout << sum << " " << ans << endl;
  92.     return 0;
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement