Pagini recente » Cod sursa (job #2849410) | Cod sursa (job #2475487) | Cod sursa (job #228595) | Cod sursa (job #651909) | Cod sursa (job #700196)
Cod sursa(job #700196)
#include <cstdio>
#define Nmax 1000001
inline int min(int a, int b) { return a<b?a:b; }
int N, M, D[Nmax], i, j, top, tot;
int main()
{
freopen("mins.in","r",stdin);
freopen("mins.out","w",stdout);
scanf("%d %d", &N, &M);
top = min(N, M) - 1;
for (i=2; i<=top; ++i)
{
if (!D[i])
{
for (j=i; j<=top; j+=i) ++D[j];
if (i <= top / i) for (j=i*i; j<=top; j+=i*i) D[j] = -10000000;
}
if (D[i]>=0)
if (D[i] & 1) tot -= ((N-1)/i) * ((M-1)/i);
else tot += ((N-1)/i) * ((M-1)/i);
}
printf("%d\n", tot + (N-1) * (M-1));
return 0;
}