Cod sursa(job #1167368)

Utilizator Pateu69Ciprian O. Pateu69 Data 4 aprilie 2014 21:05:06
Problema Factorial Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>

using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int n, fact, aux, sw,k;
int main()
{
    fin>>n;
    if(n==0) k=1;




    if(n>=19531&&n<97656)
        {n=n-19531;
        fact=78125;}

    if(n>=97656&&n<488281)
        {n=n-97656;
        fact=390625;}

    if(n>=488281&&n<2441406)
        {n=n-488281;
        fact=1953125;}

    if(n>=2441406&&n<6500000)
        {n=n-2441406;
        fact=9765625;}

    if(n>=6500000&&n<7000000)
    {   n=n-6500000;
        fact=26000015;
    }

    if(n>=7000000&&n<12207031)
    {
        n=n-7000000;
        fact=28000015;
    }

    if(n>=12207031&&n<61035156)
        {n=n-12207031;
        fact=48828125;}

    if(n>=61035156&&n<305175781)
        {n=n-61035156;
        fact=244140625;}

    if(n>=305175781)
        {n=n-305175781;
        fact=1220703125;}



    while(n>0)
    {
        sw=0;
        fact=fact+5;
        aux=fact;
        while(aux%5==0)
            {aux=aux/5; sw++;}
        n=n-sw;

    }






        if(n==0&&k==0)fout<<fact;
        else if(k==1) fout<<"1";
        else fout<<"-1";

    return 0;
}