Cod sursa(job #1012524)

Utilizator toncuvasileToncu Vasile toncuvasile Data 19 octombrie 2013 11:56:55
Problema Factorial Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
#include<cmath>
#include<climits>
using namespace std;

int calc(int);

int main(){
    ifstream inFile("fact.in");
    ofstream outFile;
    outFile.open("fact.out");
    long p;
    inFile>>p;
  //  int i;
  //  outFile<<LONG_MAX<<"\n";
  //  for(i=1;calc(i)<p;i++);
  int a=1, b=LONG_MAX-10;
  int k=(a+b)/2;
  while(calc(k)!=p-1){
    if(calc(k)>p-1) b=k;
    if(calc(k)<p-1) a=k;
    k=(a+b)/2;
  }
  if(k%5==0) k+=5;
    else while(k%5!=0) k++;
    outFile<<k;


}


int calc(int n){   //Calculam exponentul lui 5 in n!
    int expFive=0; //expTwo=0;
    for(int i=1;n/pow(5,i)>0;i++) expFive+=n/pow(5,i);
  /*
    for(int i=1;n/pow(2,i)>0;i++) expTwo+=n/pow(2,i);
    int k;
    k=(expTwo>expFive)?expFive:expTwo;
  */
    return expFive;
}