Pagini recente » Cod sursa (job #1925208) | Cod sursa (job #1330171) | Cod sursa (job #1248009) | Cod sursa (job #1297233) | Cod sursa (job #798093)
Cod sursa(job #798093)
#include <stdio.h>
#define min(a,b) a<b?a:b
int d,n;
int fact2[5000100],fact3[5000100],fact5[5000100];
void fact()
{
for(int i=1;i<=n;i++)
{
if(i%2==0) fact2[i]=fact2[i/2]+1;
if(i%3==0) fact3[i]=fact3[i/3]+1;
if(i%5==0) fact5[i]=fact5[i/5]+1;
}
}
int a;
int sol;
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%d%d",&n,&d);
fact();
int x=a,y=0;
int put2=0,put3=0,put5=0;
for(int i=1;i<=n;i++)
{
x=i;
y=n-i+1;
put2=put2+fact2[y]-fact2[x];
put3=put3+fact3[y]-fact3[x];
put5=put5+fact5[y]-fact5[x];
if(d==2)
sol=sol+(put2 > 0);
else if(d==3)
sol=sol+(put3 > 0);
else if(d==4)
sol=sol+(put2 > 1);
else if(d==5)
sol=sol+(put5 > 0);
else if (d==6)
sol=sol+(put2 > 0 && put3 > 0);
}
printf("%d",sol);
return 0;
}