Pagini recente » Cod sursa (job #1566782) | Cod sursa (job #2347820) | Cod sursa (job #2468488) | Cod sursa (job #1795928) | Cod sursa (job #1754440)
#include <iostream>
#include <fstream>
using namespace std;
int c, d;
int n, div[1000001], dif[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(div[i] == 0)
{
for(int j = i; j <= n; j += i)
div[j]++;
long long ii = 1LL * i * i;
for(long long j = ii; j <= n; j += ii)
dif[j] = 1;
}
if(dif[i] == 0)
{
long long t = 1LL * (c / i) * (d / i);
if(div[i] % 2 == 0)
card -= t;
else
card += t;
}
}
cout<<1LL*c*d<<' '<<card;
g << 1LL * c * d - card;
f.close();
g.close();
return 0;
}