Cod sursa(job #1076581)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 10 ianuarie 2014 13:18:57
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.86 kb
#include <iostream>
#include <fstream>

using namespace std;

int verifica(long long nr){
    long long numitor=5;
    long long suma=0;
    while(nr/numitor>0){
        suma=suma+nr/numitor;
        numitor=numitor*5;
    }
    return suma;
}

long long pas=1<<30;
int main()
{
    long long n,nract;
    ifstream f("fact.in");
    ofstream g("fact.out");
    f>>n;
    nract=5;
    long long nr=1;
    long long studiaza;
    long long i;
    for(i=0;pas>0;pas=pas/2){
        if(verifica(i+pas)<n)
            i+=pas;
    }
    if(verifica(i+1)==n)
        g<<i+1;
    else
        g<<-1;
    return 0;
}

/*#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    long long n,nract,numitor=5,suma=0;
    ifstream f("fact.in");
    ofstream g("fact.out");
    f>>n;
    nract=5;
    long long nr=1;
    long long studiaza;
    if(n>0){
        while(suma<n){
            nract=nract+5;
            studiaza=nract;
            suma=0;
            numitor=5;
            while(studiaza/numitor>0){
                suma=suma+studiaza/numitor;
                numitor=numitor*5;
            }
            //cout<<studiaza<<" ";
            //cout<<suma;
            //nr++;
        }
        if(n==suma)
            g<<studiaza;
        else g<<-1;
    }
    else g<<1;
    return 0;
}
*/
/*#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    long long n,nract;
    ifstream f("fact.in");
    ofstream g("fact.out");
    f>>n;
    nract=5;
    long long nr=1;
    if(n>0){
        while(nr<n){
            nract=nract+5;
            long long studiaza=nract;
            while(studiaza%5==0){
                nr++;
                studiaza=studiaza/5;
            }
            //nr++;
        }
        g<<nract;
    }
    else g<<1;
    return 0;
}
*/