Pagini recente » Cod sursa (job #2297443) | Cod sursa (job #1012178) | Cod sursa (job #2315820) | Cod sursa (job #2625002) | Cod sursa (job #313041)
Cod sursa(job #313041)
#include <stdio.h>
long v[14][3];
int BS2(int x)
{
int lo, hi, mid, last = 0;
for (lo = 1, hi = 12; lo <= hi; )
{
mid = lo + (hi-lo) / 2;
if (v[mid][2] <= x) last = mid, lo = mid+1;
else hi = mid-1;
}
return last;
}
int main()
{
FILE *f,*g;
long p,n=0,i;
v[1][1]=25;
v[1][2]=6;
for (i=2;i<13;i++)
{v[i][1]=v[i-1][1]*5;
v[i][2]=v[i-1][1]+v[i-1][2];};
f=fopen("fact.in","r");
fscanf(f,"%ld",&p);
fclose(f);
do
{
n=n+v[BS2(p)][1];
p=p-v[BS2(p)][2];
}
while (p>24);
g=fopen("fact.out","w");
fprintf(g,"%d",n);
fclose(g);
return 0;
}