Cod sursa(job #363038)

Utilizator TFifesPorcescu Alexandru TFifes Data 11 noiembrie 2009 17:07:17
Problema Numere 2 Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream o("numere2.in");
ofstream y("numere2.out");
long long cautare (unsigned long long a,unsigned long long b,unsigned long long p,unsigned int i)
 {unsigned long long c,d;

     while(a<=b)
     {
         c=(a+b)/2;
         d=pow(c,i);
         if(d==p)
         return c;
         if(d>p)
         b=c-1;
         if(d<p)
         a=c+1;
     }
     return -1;
 }
 int main ()
 {
     unsigned long long a,p,b,x,min;
     unsigned int i,t=1;
     a=1;
     b=4000000;
     o>>p;
     min=cautare(a,b,p,1);
     for(i=2;i<=100;i++)
     {
         x=cautare(a,b,p,i);
         if(x!=-1 && x<min)
         {
             min=x;
             t=i;
         }
     }

y<<min<<'\n'<<t;
o.close();
y.close();

 return 0;
 }