Pagini recente » Cod sursa (job #1046793) | Cod sursa (job #25556) | Cod sursa (job #37335) | Cod sursa (job #615308) | Cod sursa (job #1823910)
#include <stdio.h>
#define MAX 5000001
int v[2]={2,3},api[2],apij[2],apj[2],ap[MAX][2];
int main(){
FILE *fin=fopen("pascal.in","r");
FILE *fout=fopen("pascal.out","w");
int r,d,nr=0,i,j,c;
fscanf(fin,"%d%d",&r,&d);
if(d==5)
v[0]=5;
for(i=0; i<2; i++)
for(c=v[i]; c<=r; c*=v[i])
for(j=c; j<=r; j+=c)
ap[j][i]++;
for(i=0; i<2; i++){
for(c=v[i]; c<=r; c*=v[i])
api[i]+=r/c;
apij[i]=api[i];
}
for(i=1; i<r/2+r%2; i++){
apij[0]-=ap[r-i+1][0];
apj[0]+=ap[i][0];
apij[1]-=ap[r-i+1][1];
apj[1]+=ap[i][1];
switch(d){
case 2: if(api[0]-apij[0]-apj[0]>0) nr++; break;
case 3: if(api[1]-apij[1]-apj[1]>0) nr++; break;
case 5: if(api[0]-apij[0]-apj[0]>0) nr++; break;
case 4: if(api[0]-apij[0]-apj[0]>1) nr++; break;
case 6: if(api[0]-apij[0]-apj[0]>0 && api[1]-apij[1]-apj[1]>0) nr++; break;
}
}
nr*=2;
if(r%2==0){
apij[0]-=ap[r-i+1][0];
apj[0]+=ap[i][0];
apij[1]-=ap[r-i+1][1];
apj[1]+=ap[i][1];
switch(d){
case 2: if(api[0]-apij[0]-apj[0]>0) nr++; break;
case 3: if(api[1]-apij[1]-apj[1]>0) nr++; break;
case 5: if(api[0]-apij[0]-apj[0]>0) nr++; break;
case 4: if(api[0]-apij[0]-apj[0]>1) nr++; break;
case 6: if(api[0]-apij[0]-apj[0]>0 && api[1]-apij[1]-apj[1]>0) nr++; break;
}
}
fprintf(fout,"%d\n",nr);
fclose(fin);
fclose(fout);
return 0;
}