Pagini recente » Cod sursa (job #1459538) | Cod sursa (job #1219617) | Cod sursa (job #1280791) | Cod sursa (job #1406092) | Cod sursa (job #1983175)
#include <cstdio>
int ciur[1000001], prime[1000001], prod[1000001];
int main() {
int a, b;
FILE *fin = fopen("mins.in", "r");
fscanf(fin, "%d%d", &a, &b);
fclose(fin);
for(int d = 1; d <= a; ++d) {
prod[d] = 1;
ciur[d] = b;
}
for(int d = 2; d <= a; ++d)
if(prod[d] == 1)
for(int i = d; i <= a; i = i + d) {
prod[i] *= d;
prime[i]++;
}
for(int d = 2; d <= a; ++d)
if(d == prod[d])
for(int i = d; i <= a; i = i + d) {
if(prime[d] % 2 == 1)
ciur[i] -= b / d;
else
ciur[i] += b / d;
}
FILE *fout = fopen("mins.out", "w");
int s = 0;
for(int i = 1; i <= a; ++i)
s = s + ciur[i];
fprintf(fout, "%d", s);
fclose(fout);
return 0;
}