Pagini recente » Cod sursa (job #722468) | Cod sursa (job #162439) | Cod sursa (job #290112) | Cod sursa (job #1239792) | Cod sursa (job #1094039)
#include <fstream>
using namespace std;
ifstream in;
ofstream out;
int r, d, m, v[10], sol;
void decomp(int x, int y);
inline int div();
int main(int argc, char *argv[])
{
in.open("pascal.in");
out.open("pascal.out");
in >> r >> d;
m = r;
for (int i = 1; i <= m / 2; i++,r--) {
decomp(r, i);
if (div())
sol += 2;
}
if (m % 2 == 0 && div())
sol--;
out << sol << endl;
in.close();
out.close();
return 0;
}
void decomp(int x, int y)
{
while (x % 2 == 0) {
x /= 2;
v[2]++;
}
while (x % 3 == 0) {
x /= 3;
v[3]++;
}
while (x % 5 == 0) {
x /= 5;
v[5]++;
}
while (y % 2 == 0) {
y /= 2;
v[2]--;
}
while (y % 3 == 0) {
y /= 3;
v[3]--;
}
while (y % 5 == 0) {
y /= 5;
v[5]--;
}
}
inline int div()
{
return (d == 4 && v[2] > 1) || (d == 6 && v[2] > 0 && v[3] > 0) || (v[d] > 0) ? 1 : 0;
}