Pagini recente » Cod sursa (job #2403697) | Cod sursa (job #3131117) | Cod sursa (job #259449) | Cod sursa (job #2558007) | Cod sursa (job #1744297)
#include <cstdio>
#include <algorithm>
using namespace std;
int divizori[1000005], v[1000005];
int main(){
freopen("mins.in", "r", stdin);
freopen("mins.out", "w", stdout);
int n, m, i;
long long x, j;
scanf("%d%d", &n, &m);
m --; n --;
if (n > m)
swap(n, m);
for (i = 2; i <= n; i ++){
if (!divizori[i]){
for (j = i; j <= n; j += i)
divizori[j] ++;
for (j = i * i; j <= n; j += 2 * i)
v[j] = 1;
}
}
x = 1LL * n * m;
for (i = 2; i <= n; i ++){
if (!v[i]){
if (divizori[i] % 2)
x -= (n / i) * (m / i);
else
x += (n / i) * (m / i);
}
}
printf("%lld", x);
return 0;
}