Pagini recente » Cod sursa (job #2816228) | Cod sursa (job #121277) | Cod sursa (job #573346) | Cod sursa (job #3287582) | Cod sursa (job #2764476)
#include <fstream>
#include <iostream>
using namespace std;
int R, D;
int rez;
void read() {
ifstream f("pascal.in");
f >> R >> D;
f.close();
}
void solve() {
// randurile 0 si 1 nu pot avea elemente divizibile cu 2, 3, 4, 5, 6 => afisam 0
if (R == 0 || R == 1)
return;
int i, p2, p3, p5, div2, div3, div5, nr;
div2 = div3 = div5 = 0;
while (D % 2 == 0)
div2++, D /= 2;
while (D % 3 == 0)
div3++, D /= 3;
while (D % 5 == 0)
div5++, D /= 5;
p2 = p3 = p5 = 0;
for (i = 1; i < (R + 2) / 2; i++) {
nr = R - i + 1;
while (nr % 2 == 0)
p2++, nr /= 2;
while (nr % 3 == 0)
p3++, nr /= 3;
while (nr % 5 == 0)
p5++, nr /= 5;
nr = i;
while (nr % 2 == 0)
p2--, nr /= 2;
while (nr % 3 == 0)
p3--, nr /= 3;
while (nr % 5 == 0)
p5--, nr /= 5;
if (p2 >= div2 && p3 >= div3 && p5 >= div5)
rez++;
}
rez *= 2;
if (R % 2 == 0)
rez--;
}
void output() {
ofstream g("pascal.out");
g << rez;
g.close();
}
int main() {
read();
solve();
output();
return 0;
}