Pagini recente » Cod sursa (job #2118425) | Cod sursa (job #2667234) | Cod sursa (job #2569763) | Cod sursa (job #1380088) | Cod sursa (job #504819)
Cod sursa(job #504819)
#include <stdio.h>
FILE*f=fopen("pascal.in","r");
FILE*g=fopen("pascal.out","w");
int r2,r3,r5,nr,i,r,d,v2[5000005],v3[5000005],v5[5000005];
int fact(int a,int b){
int z=0;
while(a%b==0){
a/=b;
z++;
}
return z;
}
int main() {
fscanf(f,"%d%d",&r,&d);
for(i=1;i<=r+1;i++){
v2[i]=v2[i-1]+fact(i,2);
v3[i]=v3[i-1]+fact(i,3);
v5[i]=v5[i-1]+fact(i,5);
}
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=1;
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;
}