Cod sursa(job #805806)
Utilizator | Nasture Anca Nasture | Data | 1 noiembrie 2012 10:37:14 |
---|---|---|---|
Problema | Factorial | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#include<stdio.h>
int put(int n){
int p1=0,c5=5;
while(n/c5>=1){
p1+=n/c5;
c5*=5;
}
return p1;
}
int main(){
int l1,l2,n,p,puterea;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
l1=1;
l2=1<<30;
bool pp=false;
while(l1<=l2&&!pp){
n=(l1+l2)/2;
puterea=put(n);
if(puterea==p)
pp=true;
else
if(puterea>p)
l2=n-1;
else
l1=n+1;
}
if(n==0)
printf("1");
else
if(pp)
printf("%d",n-n%5);
else
printf("-1");
return 0;
}