Cod sursa(job #1009580)
| Utilizator | Data | 13 octombrie 2013 15:31:51 | |
|---|---|---|---|
| Problema | Factorial | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int main()
{
unsigned p,nr;
fin >> p;bool z=false;
long long int a=0,b=100000005,c,i;
if(p==0)
fout << 1 << "\n";
else
while(a!=b)
{
nr=0;
c=(a+b)/2;
for(i=5;i<=c;i*=5)
nr+=c/i;
if(nr==p)
{while(c%5!=0)
c--;
fout << c;z=true;break;}
if(nr<p)
a=c+1;
if(nr>p)
b=c-1;
}
if(z==false)
fout << -1 << "\n";
return 0;
}
