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