Cod sursa(job #273816)
| Utilizator | Data | 9 martie 2009 00:49:55 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.4 kb |
#include<iostream>
#define DIM 10
using namespace std;
int v[DIM]={5,25,125,625,3125,15625,78125,390625,1953125,48828125};
int div(int nr)
{
for(int i=DIM-1;i>=0;i--)if(nr%v[i]==0)return i+1;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int P, N, nz,i;
cin>>P;
N=5*P;
for(i=nz=0;i<DIM;i++)nz+=N/v[i];
for(;nz>P;nz-=div(N-=5));
if(nz==P)cout<<N;
else cout<<-1;
}
