Pagini recente » Cod sursa (job #564722) | Cod sursa (job #2608870) | Cod sursa (job #244778) | Cod sursa (job #108229) | Cod sursa (job #2408459)
#include <fstream>
#include <iostream>
#define NMAX 1000100
using namespace std;
ifstream f("mins.in");
ofstream g("mins.out");
int c, d, n, cn[NMAX];
long long sol;
bool cp[NMAX];
void ciur()
{
for(int i=2; i<=n; i++)
{ if(!cn[i])
{ for(int j=i; j<=n; j+=i) cn[j]++;
long long k = 1LL * i * i;
for(long long j=k; j<=n; j+=k) cp[j]=1;
}
if(!cp[i])
{ long long val = 1LL * (c/i) * (d/i);
if(!(cn[i] & 1)) sol += val;
else sol -= val;
}
}
}
int main()
{
f >> c >> d;
c--;
d--;
n = min(c, d);
sol = 1LL * c * d;
ciur();
//for(int i=1; i<=n; i++) cout << cn[i] << ' ' << cp[i] << '\n';
g << sol << '\n';
return 0;
}