Pagini recente » Cod sursa (job #214444) | Cod sursa (job #2083138) | Cod sursa (job #727537) | Cod sursa (job #896805) | Cod sursa (job #635049)
Cod sursa(job #635049)
#include <cstdio>
using namespace std;
int n, m, nr[1000002];
long long sol;
inline int min (int a, int b) {return a < b ? a : b;}
int main ()
{
freopen ("mins.in", "r", stdin);
freopen ("mins.out", "w", stdout);
scanf ("%d %d", &n, &m);
n--;m--;
int i;
for (i = 2; i <= min (n, m); i ++)
if (!nr[i])
{
for (long long j = (long long)i * i; j <= min (n, m); j += (long long)i * i)
nr[j] -= 1000;
for (int j = i; j <= min (n, m); j += i)
nr[j] ++;
}
for (i = 1; i <= min (n, m); i ++)
if (nr[i] > 0)
if (nr[i] & 1)
sol = sol - (long long)(n / i) * (m / i);
else
sol = sol + (long long)(n / i) * (m / i);
printf ("%lld\n", sol + (long long) n * m);
return 0;
}