Pagini recente » Cod sursa (job #2591179) | Cod sursa (job #1226705) | Istoria paginii preoni-2008/runda-4/9 | Profil VisuianMihai | Cod sursa (job #801664)
Cod sursa(job #801664)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f = fopen ("pascal.in","r");
FILE *g = fopen ("pascal.out","w");
int d[10];
int main()
{
int R, D;
long long sol = 0;
fscanf (f, "%d%d", &R, &D);
for (int k = 1; k <= R; k++) {
int N = R - k +1;
while (N % 2 == 0) {
N /= 2;
d[2]++;
}
while (N % 3 == 0) {
N /= 3;
d[3]++;
}
while (N % 5 == 0) {
N /= 5;
d[5]++;
}
int K = k;
while (K % 2 == 0) {
K /= 2;
d[2]--;
}
while (K % 3 == 0) {
K /= 3;
d[3]--;
}
while (K % 5 == 0) {
K /= 5;
d[5]--;
}
if (D == 4) {
if (d[2] >= 2)
sol++;
}
else if (D == 6) {
if (min(d[2],d[3]) > 0)
sol++;
}
else
if (d[D])
sol++;
}
fprintf (g, "%lld\n", sol);
fclose(f);
fclose(g);
return 0;
}