Pagini recente » Cod sursa (job #1801059) | Cod sursa (job #2620112) | Cod sursa (job #196994) | Cod sursa (job #195552) | Cod sursa (job #1319845)
#include <stdio.h>
#define MAXR 5000000
int p[MAXR], q[MAXR];
int main(){
FILE *in = fopen("pascal.in", "r");
int r, d;
fscanf(in, "%d%d", &r, &d);
fclose(in);
int i, j, rez, k, l, cd;
if(d != 6){
cd = d;
if(d == 4)
d = 2;
for(i = d; i <= r; i *= d){
for(j = i; j <= r; j += i){
p[j]++;
}
}
rez = 0;
k = 0;
for(i = 1; i <= r; i++){
k += p[r - i + 1] - p[i];
if(cd != 4){
if(k > 0)
rez++;
}
else
if(k > 1)
rez++;
}
}
else{
for(i = 2; i <= r; i <<= 1){
for(j = i; j <= r; j += i){
p[j]++;
}
}
for(i = 3; i <= r; i *= 3){
for(j = i; j <= r; j += i){
q[j]++;
}
}
rez = 0;
k = 0;
l = 0;
for(i = 1; i <= r; i++){
k += p[r - i + 1] - p[i];
l += q[r - i + 1] - q[i];
if(k > 0 && l > 0)
rez++;
}
}
FILE *out = fopen("pascal.out", "w");
fprintf(out, "%d", rez);
fclose(out);
return 0;
}