Pagini recente » Cod sursa (job #1781732) | Cod sursa (job #3219868) | Cod sursa (job #2903477) | Cod sursa (job #1627142) | Cod sursa (job #1520517)
#include<fstream>
using namespace std;
long a,b,c,r,d,nr;
int d2[5000000],d3[5000000],d5[5000000];
void fac()
{
long aux;
for(long i=2;i<=r;i++)
{
aux=i;
d2[i]=d2[i-1];
d3[i]=d3[i-1];
d5[i]=d5[i-1];
while(aux%2==0 && aux>0)
{
d2[i]++;
aux/=2;
}
while(aux%3==0 && aux>0)
{
d3[i]++;
aux/=3;
}
while(aux%5==0 && aux>0)
{
d5[i]++;
aux/=5;
}
}
}
long numar()
{
long i;
for(i=1;i<r/2;i++)
{
if(d2[r]-d2[i]-d2[r-i]>=a && d3[r]-d3[i]-d3[r-i]>=b && d5[r]-d5[i]-d5[r-i]>=c)
nr++;
}
nr*=2;
if(r%2==0)
{
if(d2[r]-2*d2[r/2]>=a && d3[r]-2*d3[r/2]>=b && d5[r]-2*d5[r/2]>=c)
nr++;
}
return nr;
}
int main()
{
ifstream f("pascal.in");
ofstream g("pascal.out");
f>>r>>d;
fac();
switch(d) {
case 2:
a=1;
break;
case 3:
b=1;
break;
case 4:
a=2;
break;
case 5:
c=1;
break;
case 6:
a=1;
b=1;
break;
}
g<<numar();
return 0;
}