Cod sursa(job #138990)
| Utilizator | Data | 19 februarie 2008 16:40:47 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("factorial.in");
ofstream g("factorial.out");
double func(unsigned long long c)
{
unsigned long long aux=c, sum=0;
while(aux!=0)sum+=aux%5;
return (double)(c-sum)/4;
}
int main()
{
unsigned long long a=0,b=100000000,p;
f>>p;
f.close();
int flag=1;
do
{
unsigned long long c=(a+b)/2;
if (func(c)==p) {g<<p;flag=0;break;}
else if (func(c)>p) b=c-1;
else a=c+1;}
while(a<=b);
if (flag) g<<"-1";
g.close();
}
