Pagini recente » Cod sursa (job #3282780) | Cod sursa (job #1062812) | Cod sursa (job #1057534) | Cod sursa (job #2642958) | Cod sursa (job #660170)
Cod sursa(job #660170)
#include<iostream>
#include<fstream>
using namespace std;
void desc(int n, long long x[10])
{
int i;
for (i=2;i<=5;i++)
if (i!=4)
{
long long y=i;
while (n/y>0)
{
x[i]=x[i]+int (n/y);
y*=y;
}
}
}
void adunare_v ( long long b[10], long long c[10], long long a[10])
{
int i;
for (i=2;i<=5;i++)
if (i!=4)
b[i]=a[i]-b[i]-c[i];
}
int main(void)
{
long long n,d,nr=0,i;
fstream f,g;
f.open("pascal.in",ios::in);
g.open("pascal.out",ios::out);
f>>n>>d;
long long a[10]={0};
desc (n,a);
if (n==0 || n==1)
{
g<<0;
return 0;
}
for (i=1;i<=n/2;i++)// !! par sau impar
{
long long w[10]={0},y[10]={0};
desc(n-i,w);
desc(i,y);
adunare_v(w,y,a);
if (d==2 && w[2]>0)
nr+=2;
else
if (d==3 && w[3]>0)
nr+=2;
else
if (d==4 && w[2]>1)
nr+=2;
else
if (d==5 && w[5]>0)
nr+=2;
else
if (d==6 && w[2]>0 && w[3]>0)
nr+=2;
}
if (n%2==0)
nr--;
g<<nr;
}