Pagini recente » Cod sursa (job #936110) | Cod sursa (job #1570371) | Cod sursa (job #1962553) | Cod sursa (job #935464) | Cod sursa (job #1805855)
#include <cstdio>
struct codeFactory {
int e2, e3, e5;
} fi, fj, fij, rez;
int main() {
int r, d, nr;
FILE *fin = fopen("pascal.in", "r");
fscanf(fin, "%d%d", &r, &d);
fclose(fin);
for(int i = 1; i <= r; ++i) {
int c = i;
while(c % 2 == 0) {
fi.e2++;
c = c / 2;
}
while(c % 3 == 0) {
fi.e3++;
c = c / 3;
}
while(c % 5 == 0) {
fi.e5++;
c = c / 5;
}
}
fij = fi;
nr = 0;
for(int j = 0; j <= r; ++j) {
rez.e2 = fi.e2 - fj.e2 - fij.e2;
rez.e3 = fi.e3 - fj.e3 - fij.e3;
rez.e5 = fi.e5 - fj.e5 - fij.e5;
if(d == 2 && rez.e2 > 0)
++nr;
else if(d == 3 && rez.e3 > 0)
++nr;
else if(d == 4 && rez.e2 > 1)
++nr;
else if(d == 5 && rez.e5 > 0)
++nr;
else if(d == 6 && rez.e2 > 0 && rez.e3 > 0)
++nr;
int c = j + 1;
while(c % 2 == 0) {
fj.e2++;
c = c / 2;
}
while(c % 3 == 0) {
fj.e3++;
c = c / 3;
}
while(c % 5 == 0) {
fj.e5++;
c = c / 5;
}
c = r - j;
if(c == 0)
c = 1;
while(c % 2 == 0) {
fij.e2--;
c = c / 2;
}
while(c % 3 == 0) {
fij.e3--;
c = c / 3;
}
while(c % 5 == 0) {
fij.e5--;
c = c / 5;
}
}
FILE *fout = fopen("pascal.out", "w");
fprintf(fout, "%d", nr);
fclose(fout);
return 0;
}