Cod sursa(job #715132)
| Utilizator | Data | 16 martie 2012 18:34:30 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream f2("fact.out");
int pw(long a,int b) {
int i=0;
while(a>b) {
i++;
a/=b;
}
if(a%b==0) return i+1;
else return 1;
}
int main() {
long k=0,p=0,n;
f>>n;
if(n==0) {
p=n;
k=1;
} else {
k=5*n;
p=n;
for(int i=25;i<k;i*=5) {
for(int j=1;j*i<k;j++) {
p+=pw(j*i,5);
}
}
while(p>n) {
k-=5;
p-=pw(k,5);
}
}
if(p==n) f2<<k; else f2<<-1;
return 0;
}
