Pagini recente » Cod sursa (job #2078198) | Profil rares_ciociea | Cod sursa (job #975094) | Cod sursa (job #461130) | Cod sursa (job #485844)
Cod sursa(job #485844)
#include<fstream>
using namespace std;
struct rec
{
int p2,p3,p5;
} a[5000002];
int r,d;
int p2d,p3d,nr,p5d;
ifstream f("pascal.in");
ofstream g("pascal.out");
void factr();
void factd();
void num();
int main()
{
f>>r>>d;
factr();
factd();
num();
g<<nr;
f.close();
g.close();
}
void num()
{
int pp2,pp3,pp5,mij=r/2,k;
for (k=1;k<=r;++k)
{
pp2=a[r].p2-(a[k].p2+a[r-k].p2);
pp3=a[r].p3-(a[k].p3+a[r-k].p3);
pp5=a[r].p5-(a[k].p5+a[r-k].p5);
if (pp2>=p2d&&pp3>=p3d&&pp5>=p5d) ++nr;
}
//nr*=2;
//if (r%2==0) nr--;
}
void factd()
{
while (d%2==0)
{
++p2d;
d/=2;
}
while (d%3==0)
{
++p3d;
d/=3;
}
while (d%5==0)
{
++p5d;
d/=5;
}
}
void factr()
{
int i,x;
for (i=2;i<=r;++i)
{
a[i].p2=a[i-1].p2;
a[i].p3=a[i-1].p3;
a[i].p5=a[i-1].p5;
x=i;
while (x%2==0)
{
++a[i].p2;
x/=2;
}
while (x%3==0)
{
++a[i].p3;
x/=3;
}
while (x%5==0)
{
++a[i].p5;
x/=5;
}
}
}