Pagini recente » Cod sursa (job #1169693) | Cod sursa (job #968374) | Cod sursa (job #1913547) | Cod sursa (job #2370682) | Cod sursa (job #548141)
Cod sursa(job #548141)
#include <fstream>
using namespace std;
int n,d;
ifstream in("pascal.in");
ofstream out("pascal.out");
int fact(int n,int x)
{
int nr=0;
while(n%x==0)
{
++nr;
n/=x;
}
return -nr;
}
int f2()
{
int i,partial=0,nr=0;
for(i=1;i<=(n-1)/2;++i)
{
partial+=fact(i,2)-fact(n-i+1,2)>0;
nr+=partial;
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,2)-fact(n-i+1,2)>0;
nr+=partial;
}
return nr;
}
int f3()
{
int i,partial=0,nr=0;
for(i=1;i<=(n-1)/2;++i)
{
partial+=fact(i,3)-fact(n-i+1,3)>0;
nr+=partial;
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,3)-fact(n-i+1,3)>0;
nr+=partial;
}
return nr;
}
int f4()
{
int i,partial=0,nr=0;
for(i=1;i<=(n-1)/2;++i)
{
partial+=fact(i,2)-fact(n-i+1,2)>1;
nr+=partial;
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,2)-fact(n-i+1,2)>1;
nr+=partial;
}
return nr;
}
int f5()
{
int i,partial=0,nr=0;
for(i=1;i<=(n-1)/2;++i)
{
partial+=fact(i,5)-fact(n-i+1,5)>0;
nr+=partial;
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,5)-fact(n-i+1,5)>0;
nr+=partial;
}
return nr;
}
int f6()
{
int i,partial1=0,partial2=0,nr=0;
for(i=1;i<=(n-1)/2;++i)
{
partial1+=fact(i,2)-fact(n-i+1,2)>0;
partial2+=fact(i,3)-fact(n-i+1,3)>0;
nr+=partial1;
nr+=partial2;
}
nr<<=1;
if(n%2==0)
{
partial1+=fact(i,2)-fact(n-i+1,2)>0;
partial2+=fact(i,3)-fact(n-i+1,3)>0;
nr+=partial1;
nr+=partial2;
}
return nr;
}
void work()
{
in>>n>>d;
if(d==2)
out<<f2();
if(d==3)
out<<f3();
if(d==4)
out<<f4();
if(d==5)
out<<f5();
if(d==6)
out<<f6();
}
int main()
{
work();
return 0;
}