Pagini recente » Cod sursa (job #581351) | Cod sursa (job #2284559) | Cod sursa (job #1575453) | Cod sursa (job #1031918) | Cod sursa (job #3280185)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("mins.in");
ofstream g ("mins.out");
const int NMAX = 1000000;
int c, d, n,
ciurn[NMAX+1];
bool ciurp[NMAX+1];
long long card;
void calcul(int x) {
if (ciurn[x] == 0) {
for (int i=x; i<=n; i+=x)
ciurn[i]++;
long long k = 1LL * x * x;
for (long long j = k; j<=n; j+=k)
ciurp[j] = 1;
}
if (ciurp[x] == 0) {
long long t = 1LL * (c/x) * (d/x);
if (ciurn[x] % 2 == 0)
card -= t;
else
card += t;
}
}
int main()
{
f >> c >> d;
//
c--; d--;
n = min(c, d);
//
for(int i=2; i<=n; i++)
calcul(i);
//
g << 1LL * c * d - card;
//
f.close();
g.close();
return 0;
}