Cod sursa(job #3263644)
| Utilizator | Data | 15 decembrie 2024 18:17:11 | |
|---|---|---|---|
| Problema | Factorial | Scor | 45 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long p;
int fact(long long n)
{
long long sum=0;
long long c=5;
while(n>=c)
{
sum+=n/c;
c*=5;
}
return sum;
}
int main(){
in>>p;
long long st=0,dr=100000005;
long long res=0;
while(st<=dr)
{
long long mid=(st+dr)/2;
if(fact(mid)>p)
{
dr=mid-1;
}
else if(fact(mid)==p)
{
dr=mid-1;
res=mid;
}
else{
st=mid+1;
}
}
out<<res;
return 0;
}
