import java.util.Scanner;
public class Mymath
{
private double number;
public Mymath(double number)
{
this.number=number;
}
public double abs()
{
if(number>=0)
return number;
else
number=-number;
return number;
}
public double max(double a)
{
if(number>=a)
return number;
else
return a;
}
public double gcd(double number,double n)
{
if(n<0)
return -1;
else if(number<0)
return -1;
else if(n==0)
return number;
else
return gcd (n,number%n);
}
public double pow(double k)
{
double temp=1;
if(k>0)
{
for(int p=1;p<=k;p++)
temp=number*temp;
}
return temp;
}
public double sqrt()
{
double a = number;
while((a*a-number)>0.00001||(number-a*a)>0.00001)
{
a=(number/a+a)/2.0;
}
return a;
}
private int factorial(int n)
{
int a=0;
if (n==0)
return 1;
else if (n==1)
return 1;
else
a=n*factorial(n-1);
return a;
}
public double exp()
{
if(number>=66)
{
System.out.println("erorr");
return number;
}
else
{
int i=0;
double c=0.0;
for(double k=0.000000001;k<(pow(i)/factorial(i));i++)
{
c=c+(pow(i)/factorial(i));
}
return c;
}
}
public static void main(String []args)
{
Scanner console = new Scanner(System.in);
System.out.print( "the first number is : ");
double x = console.nextDouble();
Mymath m = new Mymath (x);
m.abs();
System.out.println("abs of first number is: "+m.abs());
m.sqrt();
System.out.println("Sqrt the first number = "+m.sqrt());
m.exp();
System.out.println("exp"+"("+x+")"+"="+m.exp());
Scanner console1 = new Scanner(System.in);
System.out.print( "the second number is : ");
double y = console1.nextDouble();
m.max(y);
System.out.println("between "+x+" and "+y+" the is max is "+m.max(y));
Scanner console2 = new Scanner(System.in);
System.out.print( "sent a number to get gcd between first number: ");
double z = console2.nextDouble();
m.gcd(x,z);
System.out.println("The gcd is "+m.gcd(x,z));
Scanner console3 = new Scanner(System.in);
System.out.print( "sent a number pow of the first number: ");
int a = console3.nextInt();
m.pow(a);
System.out.println("The "+x+" to pow "+a+" is "+m.pow(a));
}
}