Cod sursa(job #643126)
| Utilizator | Data | 2 decembrie 2011 23:32:48 | |
|---|---|---|---|
| Problema | Factorial | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.44 kb |
#include<fstream>
using namespace std;
int main() {
int p,n,q=1,l1=-1,l2=-1,sum1,sum2;
ifstream in("fact.in");
ofstream out("fact.out");
in>>p;
while(q<p) {
l1++;
q*=5;
}
q=1;
sum1=l1*(l1-1)>>1;
while(q<p-sum1) {
l2++;
q*=5;
}
if(q>p) q/=5;
sum2=l2*(l2+1)>>1;
// solutie
if((0<=p-q-sum1&&p-q-sum1<l1)||p==5)
n=-1;
else
n=5*(p-sum2);
out<<n<<'\n';
in.close();
out.close();
return 0;
}
