/* ECCO L'ALGORITMO

start
input(r)
x=1 (ad esempio)
e = 0.000001
while(|x^2-r| > e)
x = (r/x + x)/2
output(x)
stop

   DI SEGUITO C'E' IL CODICE
*/
public class NewtonRaphson {
	
	public static final double OPERANDO=1000;
	public static final double EPS=1.0/1000000;
	
	public static void main (String[] arg) {
		double x= 1; // valore iniziale
				
		System.out.print("Valore iniziale di X: ");
		System.out.println(x);
		System.out.println();
		
		while (Math.abs(x*x-OPERANDO)>EPS){
		x=(OPERANDO/x+x)/2;
		System.out.print("Iterazione: ");
		System.out.println(x);
		}
		System.out.println();
		System.out.print("Operando\t=\t");
		System.out.println(OPERANDO);
		System.out.print("Tolleranza\t=\t");
		System.out.println(EPS);
		System.out.print("X\t\t=\t");
		System.out.println(x);
		System.out.print("X^2\t\t=\t");
		System.out.println(x*x);
	}
}