Pagini recente » Cod sursa (job #562903) | Cod sursa (job #3004481) | Cod sursa (job #760657) | Cod sursa (job #2361017) | Cod sursa (job #505278)
Cod sursa(job #505278)
#include<stdio.h>
FILE * f = fopen("pascal.in","r");
FILE * g = fopen("pascal.out","w");
int r2,r3,r5,nr,i,r,d;
int v2[5000005],v3[5000005],v5[5000005];
int func(int a,int b){
int div=0;
while(a%b==0){
a/=b;
div++;
}
return div;
}
int main(){
fscanf(f,"%d%d",&r,&d);
for(i=1;i<=r+1;i++){
v2[i]=v2[i-1]+func(i,2);
v3[i]=v3[i-1]+func(i,3);
v5[i]=v5[i-1]+func(i,5);
}
r3=r2=r5=0;
if(d==2)
r2=1;
else
if(d==3)
r3=1;
else
if(d==4)
r2=2;
else
if(d==5)
r5=1;
else
r2=r3=1;
for(i=1;i<((r+1)/2);i++){
if(v2[r]-v2[r-i]-v2[i]>=r2&&v3[r]-v3[r-i]-v3[i]>=r3&&v5[r]-v5[r-i]-v5[i]>=r5)
nr++;
}
nr*=2;
if(r%2==0)
if(v2[r]-v2[r-i]-v2[i]>=r2&&v3[r]-v3[r-i]-v3[i]>=r3&&v5[r]-v5[r-i]-v5[i]>=r5)
nr++;
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}