Pagini recente » Cod sursa (job #976954) | Cod sursa (job #2530715) | Cod sursa (job #1488782) | Cod sursa (job #1571250) | Cod sursa (job #907282)
Cod sursa(job #907282)
#include <cstdio>
using namespace std;
int Nr[10],Ap[10],Exp[10];
int Ok[105];
int N,r,i,j,ok,rez;
int min( int a, int b ){
if ( a < b )
return a;
return b;
}
void calc( int nr, int s ){
int ind,exp,p;
for( ind=0; ind<3; ++ind ){
exp=Exp[ind];
for( p=exp; p<=nr; p*=exp ){
Ap[exp]+=s*nr/p;
}
}
}
int main(){
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
Exp[0]=2;
Exp[1]=3;
Exp[2]=5;
scanf("%d %d", &N, &r );
if( r == 2 )
Nr[2]=1;
if( r == 3 )
Nr[3]=1;
if( r == 4 )
Nr[2]=2;
if( r == 5 )
Nr[5]=1;
if( r == 6 )
Nr[2]=Nr[3]=1;
for( i=1; i<=N-1 && i<=100; ++i ){
calc( i,-1 );
calc( N-i+1, +1 );
ok=1;
for( j=2; j<=5; ++j )
if( Ap[j]<Nr[j] )
ok=0;
Ok[i]=ok;
}
rez=N+1;
for( i=0; i<=min(100,(N+1)/2); ++i ){
rez--;
rez+=Ok[i];
}
j=0;
for( i=N; i>(N+1)/2 && j<=100; i--,j++ ){
rez--;
rez+=Ok[j];
}
printf("%d\n",rez);
return 0;
}