Cod sursa(job #1800002)

Utilizator priboiraduPriboi Radu Bogdan priboiradu Data 7 noiembrie 2016 10:17:16
Problema Factorial Scor 80
Compilator c Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXN 4294967296

int cinci( long long nr ) {
    long long i;
    int nrc = 0;
    for ( i = 5; i <= nr; i *= 5 )
        nrc += ( nr / i );
    return nrc;
}

long long cautareBinara( int p ) {
    long long r, pas;
    r = 1;
    pas = 1 << 30;
    pas *= 4;
    while ( pas != 0 ) {
        if ( cinci( r + pas ) < p )
            r += pas;
        pas /= 2;
    }
    return r + 1;
}

int main() {
    FILE  *fin, *fout;
    int p;
    fin = fopen( "fact.in", "r" );
    fout = fopen( "fact.out", "w" );
    fscanf( fin, "%d", &p );
    if ( p == 1 )
        fprintf( fout, "1" );
    else
        fprintf( fout, "%lld", cautareBinara( p ) );
    fclose( fin );
    fclose( fout );
    return 0;
}