Pagini recente » Cod sursa (job #490035) | Cod sursa (job #2129243) | Cod sursa (job #630296) | Cod sursa (job #2966820) | Cod sursa (job #548151)
Cod sursa(job #548151)
#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);
nr+=(partial>0);
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,2)-fact(n-i+1,2);
nr+=(partial>0);
}
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);
nr+=(partial>0);
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,3)-fact(n-i+1,3);
nr+=(partial>0);
}
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);
nr+=(partial>1);
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,2)-fact(n-i+1,2)>1;
nr+=(partial>1);
}
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);
nr+=(partial>0);
}
nr<<=1;
if(n%2==0)
{
partial+=fact(i,5)-fact(n-i+1,5);
nr+=(partial>0);
}
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>0);
nr+=(partial2>0);
}
nr<<=1;
if(n%2==0)
{
partial1+=fact(i,2)-fact(n-i+1,2);
partial2+=fact(i,3)-fact(n-i+1,3);
nr+=(partial1>0);
nr+=(partial2>0);
}
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;
}