Cod sursa(job #1335088)

Utilizator handsonthewheelSandel Georgel handsonthewheel Data 4 februarie 2015 22:56:56
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
using namespace std;
int fix (int n){
    int sol = 0;
    while (n%5!=0)
    {sol++;
    n--;}
return sol;
}
int sol_try (int n){
    int sol = 0 ;
    while (n){
            n/=5;
    sol+=n;
    }
    return sol;}
    void caut_binar (int n){
unsigned long long st= 0, dr=1000000000;
    unsigned long long mid = st + (dr-st)/2;
        int gen =  0;
        unsigned long long x;
        while (st<=dr&&!gen){
mid = st + (dr-st)/2;
                x=sol_try(mid);
        if (x==n)
            gen=1;
        else{
                if (x<n)
          st=mid+1;
        else if (x>n) dr=mid-1;}
        }
printf ("%d", mid-fix(mid));
    }
int main()
{freopen ("fact.in", "r", stdin);
freopen ("fact.out", "w", stdout);
int n,i;
scanf ("%d", &n);
if (n==0)
    printf ("%d", 1);
else
caut_binar(n);
}