Pagini recente » Cod sursa (job #2137632) | Cod sursa (job #1157928) | Cod sursa (job #822503) | Cod sursa (job #2981733) | Cod sursa (job #767881)
Cod sursa(job #767881)
#include<fstream>
using namespace std;
int putere(int n,int f)
{
int rez=0;
for(int c=f;f<=n;f*=c)
rez+=n/f;
return rez;
}
int main()
{
ifstream fcin("pascal.in");
ofstream fcout("pascal.out");
int r,d,i,j,nr=0,p,pt,p2=-1,pt2;
fcin>>r>>d;
if(d==4)
p=putere(r,2);
else
if(d==6)
p=putere(r,2),p2=putere(r,3);
else
p=putere(r,d);
for(i=2;i<=r/2;i++)
{
pt=p;
pt2=p2;
if(d==4)
pt=pt-putere(r-i,2)-putere(i,2);
else
if(d==6)
pt=pt-putere(r-i,2)-putere(i,2),pt2=pt2-putere(r-i,3)-putere(i,3);
else
pt=pt-putere(r-i,d)-putere(i,d);
if(d==4)
{
if(pt>1)
nr+=2;
}
else
if(d==6)
{
if(pt>0 && pt2>0)
nr+=2;
}
else
if(pt>0)
nr+=2;
}
if(r%2==0)
{
pt=p;
pt2=p2;
if(d==4)
pt=pt-putere(r-i,2)-putere(i,2);
else
if(d==6)
pt=pt-putere(r-i,2)-putere(i,2),pt2=pt2-putere(r-i,3)-putere(i,3);
else
pt=pt-putere(r-i,d)-putere(i,d);
if(d==4)
{
if(pt>1)
nr++;
}
else
if(d==6)
{
if(pt>0 && pt2>0)
nr++;
}
else
if(pt>0)
nr++;
}
fcout<<nr;
return 0;
}