Pagini recente » Cod sursa (job #3129635) | Cod sursa (job #2839949) | Cod sursa (job #335700) | Cod sursa (job #285094) | Cod sursa (job #2241676)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("mins.in");
ofstream fout ("mins.out");
int c, d, nr[1000002]; bool pp[1000002];
long long sol;
void bruv () {
for (int i = 2; i <= c; i++) {
if (!nr[i]) {
for (int j = i; j <= c; j += i)
nr[j]++;
if (1ll * i * i > c * 1ll)
continue;
for (int j = i * i; j <= c; j += i * i)
pp[j] = 1;
}
}
}
int main()
{
fin >> c >> d;
c--;
d--;
if (c > d)
swap(c, d);
bruv();
sol = 1LL * c * d;
for (int i = 2; i <= c; i++) {
if (pp[i])
continue;
if (nr[i] % 2)
sol -= 1ll * (c / i) * (d / i);
else
sol += 1ll * (c / i) * (d / i);
}
fout << sol;
return 0;
}