Cod sursa(job #3260319)
| Utilizator | Data | 1 decembrie 2024 16:49:53 | |
|---|---|---|---|
| Problema | Factorial | Scor | 70 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long P;
long long putere(int n){
long long s=0,p=5;
while(p <= n){
s += n / p, p *= 5;
}
return s;
}
long long cb(long long p, long long u){
long long m,poz=-1;
int pt;
while(p <=u){
m=(p+u)/2;
pt = putere(m);
if(pt < P){
p=m+1;
}else{
u=m-1;
poz=m;
}
}
return poz;
}
int main()
{
f >> P;
if(P!=0 && (P-5)%6!=0)
g << cb(0,P*5);
else g << -1;
return 0;
}
