Cod sursa(job #2513316)

Utilizator dorufDoru Floare doruf Data 22 decembrie 2019 21:02:37
Problema Mins Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
using llong = long long;

ifstream fin("mins.in");
ofstream fout("mins.out");

const int Dim = 5 + 1e6;
int ndiv[Dim], c, d, n;
llong sol;

bitset<Dim> dupl;

int main()
{
	fin >> c >> d;
	n = min(--c, --d);

	for (int i = 2; i <= n; ++i)
	{
		if (!ndiv[i])
		{
			for (int j = 1; 1LL * i * j <= n; ++j)
				++ndiv[i * j];

			for (int j = 1; 1LL * i * i * j <= n; ++j)
				dupl[i * i * j] = true;
		}

		if (dupl[i]) continue;

		if (ndiv[i] % 2 == 0)
			sol += 1LL * (c / i) * (d / i);
		else
			sol -= 1LL * (c / i) * (d / i);
	}

	fout << sol + 1LL * c * d;
	fin.close();
	fout.close();
}