Cod sursa(job #997029)

Utilizator dmgciubotaruCiubotaru Gabriel dmgciubotaru Data 13 septembrie 2013 01:17:17
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.82 kb
#include "stdio.h"
#include "malloc.h"
#include "string.h"
 
int main()
{
    FILE *f,*g;
    f=fopen("fact.in","r");
    g=fopen("fact.out","w");
    int x,i,n;
    int v[2][13];
    fscanf(f,"%d",&x);
    if(x==0)
        fprintf(g,"%d",1);
    else
    {
        n=0;
        i=0;
        v[0][0]=1;
        v[1][0]=1;
        while(v[1][n]<x)
        {
            n++;
            v[0][n]=v[0][n-1]*5;
            v[1][n]=v[1][n-1]*5+1;
        }
        for(;n>=0;n--)   
        {
            if(x==v[1][n]*5)
            {
                fprintf(g,"%d",-1);
                return(0);
            }
            while(x>=v[1][n])
            {
                x-=v[1][n];
                i+=v[0][n];
            }
        }
        fprintf(g,"%d",i*5);
    }
    return(0);
     
}