Cod sursa(job #3220961)

Utilizator ezluciPirtac Eduard ezluci Data 5 aprilie 2024 16:05:29
Problema Mins Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
using namespace std;
#ifdef EZ
   #include "./ez/ez.h"
   const string FILE_NAME = "test";
#else
   #include <bits/stdc++.h>
   const string FILE_NAME = "mins";
#endif
#define mp make_pair
#define ll long long
#define pb push_back
#define fi first
#define se second
#define cin fin
#define cout fout
ifstream fin (FILE_NAME + ".in");
ofstream fout (FILE_NAME + ".out");


const int nMAX = 1'000'000;

char mob[nMAX + 1];

void genMobius()
{
   mob[1] = 1;
   for (int i = 1; i <= nMAX; ++i)
      for (int j = i+i; j <= nMAX; j += i)
         mob[j] -= mob[i];
}


int main()
{
   genMobius();

   int n, m;   cin >> n >> m;
   n--;  m--;

   if (n == 0 || m == 0)   cout << '0',   exit(0);

   ll ans = 0;
   for (int d = 1; d <= min(n, m); ++d)
      ans += (ll) n/d * (m/d) * mob[d];
   
   cout << ans;
}