Cod sursa(job #2157075)

Utilizator lucianul31Moisii Lucian lucianul31 Data 9 martie 2018 10:57:37
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include<fstream>

using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");

long long z=1, p;

struct puteride5
{
    unsigned long long numar;
    long long exponent;
};

puteride5 v[100000001];

int desc(int n)
{
    int exp=0;
    while(n%5==0)
        exp++, n/=5;
    return exp;
}

int cautabinar()
{
    int i=1, j=z, m;
    while(i<=j)
    {
        m=(i+j)/2;
        if(v[m].exponent==p)
            return m;
        if(p<v[m].exponent)
            j=m-1;
        if(p>v[m].exponent)
            i=m+1;
    }
    return -1;
}

int main()
{
    long long n, i, j, poz;
    f>>p;
    for(i=5; i<=100000000; i+=5)
        v[++z].numar=i, v[z].exponent+=desc(i)+v[z-1].exponent;
    v[1].exponent=0, v[1].numar=1;
    poz=cautabinar();
    g<<v[poz].numar;
    return 0;
}