Cod sursa(job #602943)
Utilizator | Data | 13 iulie 2011 19:43:01 | |
---|---|---|---|
Problema | Factorial | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<iostream>
#include<fstream>
using namespace std;
int main(void)
{
long long p;
fstream f,g;
f.open("fact.in",ios::in);
g.open("fact.out",ios::out);
f>>p;
long long mij,dr,st;
dr=p*5+1;
st=p;
int gasit=0;
while (st<=dr && gasit==0)
{
mij=(st+dr)/2;
int k=5;
int zero=0;
while (mij/k!=0)
{
zero=mij/k+zero;
k=k*k;
}
if (zero==p)
{g<<mij;break;}
else
if (zero<p)
st=mij;
else
dr=mij;
}
if (gasit==1)
g<<-1;
}