Pagini recente » Cod sursa (job #107207) | Cod sursa (job #2921527) | Cod sursa (job #983567) | Cod sursa (job #1675286) | Cod sursa (job #1978354)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("pascal.in");
ofstream out("pascal.out");
int fact(int x)
{
int rez=1,i;
for(i=1; i<=x; i++)
rez=rez*i;
return rez;
}
long long putere(long long n, int p)
{
//returneaza puterea la care apare p in descompunerea lui n!
long long nr=0;
while (n >= p)
{
nr += n/p;
n /= p;
}
return nr;
}
int main()
{
int n,d,nr=0,i,x,y,z,rez;
in>>n>>d;
if(n%2==1)
{
for(i=2; i<=n/2+1; i++)
{
x=putere(n,d);
y=putere(n-i,d);
z=putere(i,d);
//out<<x<<" "<<y<<" "<<z<<endl;
rez=x-y-z;
if(rez>0)
nr++;
}
out<<nr*2;
}
else
{
for(i=2; i<=n/2+1; i++)
{
x=putere(n,d);
y=putere(n-i,d);
z=putere(i,d);
//out<<x<<" "<<y<<" "<<z<<endl;
rez=x-y-z;
if(rez>0)
nr++;
}
out<<nr*2-1;
}
return 0;
}