Cod sursa(job #2563806)

Utilizator raizoSoare Antonio raizo Data 1 martie 2020 14:45:05
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;

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

long long int pow (int ex);
int gcd(int a,int b);
int fact(long long int div);
int main()
{
    int p,sol,sol_a;
    long long int zeros;
    in>>p;
    if(p==0){out<<1;
            return 0;}

    zeros=pow(p);
    sol=fact(zeros);
    sol_a=fact(zeros*10);
    if(sol<sol_a){out<<sol;}
    else{out<<-1;}

    return 0;
}


long long int pow (int ex){
int base=10;
long long int sol=1;
for(int i=1;i<=ex;i++){
    sol=sol*base;
}
return sol;
}

int gcd(int a,int b){
int c=a%b;
if(c==0){return b;}
else {return gcd(b,c);}
}

int fact(long long int div){
long long int new_div=div;
for(int n=1;n<div;n++){
    int ex_div=new_div;
    new_div=ex_div/gcd(n,ex_div);

    if(new_div==1){return n;}
}
return -1;

}