Pagini recente » Cod sursa (job #2704536) | Cod sursa (job #250095) | Cod sursa (job #15192) | Cod sursa (job #1878441) | Cod sursa (job #2197564)
#include <stdio.h>
char ciur[1000006];
long long cnt(int x, int c, int d) {
return 1ll * ((c - 1) / x) * ((d - 1) / x);
}
int main() {
FILE *fin, *fout;
fin = fopen("mins.in", "r");
fout = fopen("mins.out", "w");
int c, d, i, j;
long long sol;
fscanf(fin, "%d%d", &c, &d);
sol = 0;
for (i = 2; i <= 1000000; i++) {
if (ciur[i] == 0) {
for (j = 2 * i; j <= 1000000; j += i)
ciur[j]++;
sol += cnt(i, c, d);
}
else
if(ciur[i] >= 2) {
sol -= cnt(i, c, d) * (ciur[i] - 1);
for (j = 2 * i; j <= 1000000; j += i)
ciur[j]--;
}
}
fprintf(fout, "%lld", 1ll * (c - 1) * (d - 1) - sol);
return 0;
}