Pagini recente » Cod sursa (job #1389705) | Cod sursa (job #1634733) | Cod sursa (job #2001963) | Cod sursa (job #3295380) | Cod sursa (job #518827)
Cod sursa(job #518827)
#include <fstream>
using namespace std;
int v[3]={2,3,5};
int c[3]={2,3,5};
int a[3],b[3],d[3];
int e[3]={1,1,1};
void solve(int x,int y,int z)
{
int numar=0;
while(x>0)
{
numar+=x/y;
x/=y;
}
d[z]=numar;
}
void solve2(int x,int y,int z)
{
int numar=0;
while(x>0)
{
numar+=x/y;
x/=y;
}
if(numar!=0)
e[z]*=numar;
}
int main()
{
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int r, q, i,j;
fin>>r >>q;
int aux=q;
int f=0;
for(i=0;i<=2;++i)
{
if(aux%v[i]==0)
{
a[f]=v[i];
while(aux%v[i]==0)
{
aux/=v[i];
++b[i];
}
++f;
}
}
--f;
int nr=0;
for(i=1;i<=r-1;++i)
{
aux=i;
for(j=0;j<=f;++j)
solve(r,v[j],j);
for(j=0;j<=f;++j)
solve2(r-i,v[j],j);
for(j=0;j<=f;++j)
solve2(i,v[j],j);
int ok=0;
for(j=0;j<=f;++j)
if(b[j]>d[j]-e[j])
{ok=1;break;}
for(j=0;j<=f;++j)
{
d[j]=0;
e[j]=1;
}
if(ok==0)
++nr;
}
fout<<nr;
return 0;
}