Pagini recente » Cod sursa (job #937461) | Cod sursa (job #1229893) | Cod sursa (job #1174232) | Cod sursa (job #362983) | Cod sursa (job #1754446)
#include <iostream>
#include <fstream>
using namespace std;
int c, d;
int n, ndiv[1000001], ndif[1000001];
int main()
{
ifstream f("mins.in");
ofstream g("mins.out");
f >> c >> d;
long long card = 0;
c--;
d--;
n = min(c, d);
for(int i = 2; i <= n; i++)
{
if(ndiv[i] == 0)
{
for(int j = i; j <= n; j += i)
ndiv[j]++;
long long ii = 1LL * i * i;
for(long long j = ii; j <= n; j += ii)
ndif[j] = 1;
}
if(ndif[i] == 0)
{
long long t = 1LL * (c / i) * (d / i);
if(ndiv[i] % 2 == 0)
card -= t;
else
card += t;
}
}
g << 1LL * c * d - card;
f.close();
g.close();
return 0;
}