Pagini recente » Cod sursa (job #904895) | Clasament simulare_oji_2023_clasele_11_12_12_martie | Cod sursa (job #1612959) | Rezultatele filtrării | Cod sursa (job #1067289)
#include <stdio.h>
FILE*f = fopen("pascal.in", "r");
FILE*g = fopen("pascal.out", "w");
int v2[5000005], v3[5000005], v5[5000005];
int fact(int a, int b){
int z = 0;
while (a%b == 0){
a /= b;
z++;
}
return z;
}
int main() {
int r, d;
fscanf(f, "%d%d", &r, &d);
for (register int i = 1; i <= r + 1; i++){
v2[i] = v2[i - 1] + fact(i, 2);
v3[i] = v3[i - 1] + fact(i, 3);
v5[i] = v5[i - 1] + fact(i, 5);
}
int r2=0, r3=0, r5=0;
if (d == 2)
r2 = 1;
else
if (d == 3)
r3 = 1;
else
if (d == 4)
r2 = 2;
else
if (d == 5)
r5 = 1;
else{
r2 = 1;
r3 = 1;
}
int i, nr = 0;
int n = (r + 1) >> 1;
for (i = 1; i < n; i++)
if (v2[r] - v2[r - i] - v2[i] >= r2&&v3[r] - v3[r - i] - v3[i] >= r3&&v5[r] - v5[r - i] - v5[i] >= r5)
nr++;
nr *= 2;
if (r % 2 == 0)
if (v2[r] - v2[r - i] - v2[i] >= r2&&v3[r] - v3[r - i] - v3[i] >= r3&&v5[r] - v5[r - i] - v5[i] >= r5)
nr++;
fprintf(g, "%d", nr);
fclose(f);
fclose(g);
return 0;
}