Pagini recente » Cod sursa (job #3185071) | Cod sursa (job #3295059) | Cod sursa (job #35589) | Cod sursa (job #3291112) | Cod sursa (job #1785490)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int n,d;
void Citire()
{
fin>>n>>d;
}
int Patru(int n,int d)
{
int k,s=0,x,nrdiv=0;
for(k=1;k<=n;k++)
{
x=n-k+1;
while(x%d==0)
{
s++;
x/=d;
}
x=k;
while(x%d==0)
{
s--;
x/=d;
}
if(s>=2)nrdiv++;
}
return nrdiv;
}
int Sase(int n,int d)
{
int k,s=0,x,s1=0,nrdiv=0;
for(k=1;k<=n;k++)
{
x=n-k+1;
while(x%2==0)
{
s++;
x/=2;
}
x=n-k+1;
while(x%3==0)
{
s1++;
x/=3;
}
x=k;
while(x%2==0)
{
s--;
x/=2;
}
while(x%3==0)
{
s1--;
x/=3;
}
if(s>=1 and s1>=1)nrdiv++;
}
return nrdiv;
}
int Pascal(int n,int d)
{
int k,s=0,x,nrdiv=0;
for(k=1;k<=n;k++)
{
x=n-k+1;
while(x%d==0)
{
s++;
x/=d;
}
x=k;
while(x%d==0)
{
s--;
x/=d;
}
if(s>0)nrdiv++;
}
return nrdiv;
}
int main()
{
Citire();
if(d==4)
fout<<Patru(n,d)<<"\n";
else if(d==6)
fout<<Sase(n,d)<<"\n";
else fout<<Pascal(n,d)<<"\n";
return 0;
}