Pagini recente » Cod sursa (job #1520442) | Cod sursa (job #1518856) | Cod sursa (job #1277427) | Cod sursa (job #138832) | Cod sursa (job #784743)
Cod sursa(job #784743)
# include <fstream>
using namespace std;
int c[] =
{
1 , 5 , 25 , 125 , 625 , 3125 , 15625 , 78125 ,
390625 , 1953125 , 9765625 , 48828125 , 244140625
};
int c1[] =
{
0 , 1 , 6 , 31 , 156 , 781 , 3906 , 19531 ,
97656 , 488281 , 2441406 , 12207031 , 61035156
};
int caut_b( int tinta ){
short li,ls,mij,poz = 0;
li = 0 ;
ls = 12 ;
while( li <= ls )
{
mij = ( li +ls ) / 2;
if( c1[mij] <= tinta && poz < mij ) poz = mij;
if( c1[mij] <= tinta )
li = mij + 1;
else
ls = mij - 1;
}
return poz;
}
int main(){
ifstream in("fact.in");
ofstream out("fact.out");
int p,p1,nr = 0,temp;
in >> p;
if( !p )
{
out << 1;
in.close();
out.close();
return 0;
}
p1 = p;
while(p1)
{
temp = caut_b(p1);
nr += c[temp];
p1 -= c1[temp];
}
out << nr;
in.close();
out.close();
return 0;
}