Pagini recente » Cod sursa (job #24077) | Cod sursa (job #3283092) | Statistici Toma Mihnea (mihnea239923) | Profil moga_florian | Cod sursa (job #3167614)
#include <bits/stdc++.h>
#define int long long
using namespace std;
using ll = long long;
int leg2[5000005], leg3[5000005], leg5[5000005]; // legx[i] exp lui x la i!
int32_t main()
{
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int r, d;
cin>>r>>d;
leg2[2]=1;
leg3[3]=1;
leg5[5]=1;
for(int i=2; i<=r; i++)
{
if(i > 2)
leg2[i]=leg2[i/2]+1;
if(i > 3)
leg3[i]=leg3[i/3]+1;
if(i > 5)
leg5[i]=leg5[i/5]+1;
}
for(int i=1; i<=r; i++)
{
leg2[i]+=leg2[i-1];
leg3[i]+=leg3[i-1];
leg5[i]+=leg5[i-1];
}
int ans=0;
for(int i=0; i<=r; i++)
{
// r!/((r-i)!*i!)
// de la r-i+1 la r
// te uiti la imp cu 2 3 si 5
// formula lui legandre
int e2=leg2[r]-leg2[r-i]-leg2[i];
int e3=leg3[r]-leg3[r-i]-leg3[i];
int e5=leg5[r]-leg5[r-i]-leg5[i];
//cout<<r<<" "<<i<<" "<<e2<<" "<<e3<<" "<<e5<<'\n';
//if(i == r/2 && r%2 == 0)
// ans*=2;
if(d == 2 && e2 > 0)
ans++;
if(d == 3 && e3 > 0)
ans++;
if(d == 4 && e2 > 1)
ans++;
if(d == 5 && e5 > 0)
ans++;
if(d == 6 && e2 > 0 && e3 > 0)
ans++;
}
//if(r%2 == 1)
// ans*=2;
cout<<ans;
return 0;
}