Mai intai trebuie sa te autentifici.
Cod sursa(job #1013784)
Utilizator | Data | 21 octombrie 2013 19:04:13 | |
---|---|---|---|
Problema | Factorial | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include<fstream>
using namespace std;
int n;
ifstream f("fact.in");
ofstream g("fact.out");
long long check(int nr)
{
long long fives = nr / 5;
long long c = 5;
while(c * 5 <= nr)
{
fives++;
c = c * 5;
}
return fives;
}
long long search(long long start, long long end)
{
if(end < start) return -1;
long long nr = start + ((end - start) / 2);
long long fives = check(nr);
if(fives == n && nr%5 == 0) return nr;
return (fives > n) ? search(start, nr-1) : search(nr+1, end);
}
int main()
{
f>>n;
if(n == 0)
{
g<<1;
}
else if(n == 1)
{
g<<5;
}
else
{
long long nr = search(1, 9223372036854775806);
g<<nr;
}
return 0;
}