When I run the code it print out the greatest common divisor(gcd). I need help with entering either n1 or n2 less than zero is an error: Catch these errors and make the user enter another value until they enter an acceptable one for the value in error. Give an error message if this happens. import java.util.Scanner; public class Lab5 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter a first number: "); int n1 = input.nextInt(); System.out.print("Enter a second number: "); int n2 = input.nextInt(); int r = 0; while(!(n1 % n2 == 0)) { r = n1 % n2; if(r==0) { r = n2; } if(n2 == 0 || n2 < 0 || n1 < 0) { System.out.println("ERROR!! Enter a number that is greater than 0"); System.out.print("Enter a first number: "); n1 = input.nextInt(); System.out.print("Enter a Second number: "); n2 = input.nextInt(); } r = n1 % n2; n1 = n2; n2 = r; } System.out.println("GCD of two numbers " + n1 +" and " + n2 +" is : "+ n2); } }
When I run the code it print out the greatest common divisor(gcd). I need help with
entering either n1 or n2 less than zero is an error: Catch these errors and make the user enter another value until they enter an acceptable one for the value in error. Give an error message if this happens.
import java.util.Scanner;
public class Lab5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a first number: ");
int n1 = input.nextInt();
System.out.print("Enter a second number: ");
int n2 = input.nextInt();
int r = 0;
while(!(n1 % n2 == 0)) {
r = n1 % n2;
if(r==0) {
r = n2;
}
if(n2 == 0 || n2 < 0 || n1 < 0) {
System.out.println("ERROR!! Enter a number that is greater than 0");
System.out.print("Enter a first number: ");
n1 = input.nextInt();
System.out.print("Enter a Second number: ");
n2 = input.nextInt();
}
r = n1 % n2;
n1 = n2;
n2 = r;
}
System.out.println("GCD of two numbers " + n1 +" and " + n2 +" is : "+ n2);
}
}
Explanation of the program code is provided within the comments.
Rectified program code:
//importing data package
import java.util.Scanner;
//class
public class Lab5 {
//main method
public static void main(String[] args) {
//declaring required variables
int n1=1, n2=1;
int r;
//scanner to get input from user
Scanner sc = new Scanner(System.in);
//while loop
while(true) {
//displaying message to user to enter the value of n1
System.out.println("Enter value of n1: ");
//reading input from the user
n1 = sc.nextInt();
//checking negative number
if(n1<0) {
//error message
System.out.println("Number should be greater than 0");
}else {
//if non negative then input is valid, so break out of loop
break;
}
}
//while loop
while(true) {
//displaying message to user to enter the value of n1
System.out.println("Enter value of n2: ");
//reading input from the user
n2 = sc.nextInt();
//checking for negative input
if(n2<0)
{
//checking for non - negative
System.out.println("Number should be greater than 0");
}
//if n2 is zero
else if(n2==0)
{
//displaying error message to the user that cannot divide by 0
System.out.println("n2 Cannot be 0");
}
//otherwise
else
{
//else it is a valid value
break;
}
}
//while loop to calculate gcd
while(true)
{
//getting remainder
r = n1 % n2;
//if remainder is 0
if(r==0)
{
//if remainder is zero n2 is the gcd
System.out.println("GCD of two numbers " + n1 +" and " + n2 +" is : "+ n2);
break; //breaking
}
//if remainder is 1
else if(r==1)
{
//if remainder is one then numbers are mutually prime
System.out.println("The two numbers are mutually prime(r=1)");
break;
}
//otherwise
else
{
//else change the values and continue the loop
n1=n2;
n2=r;
}
}
}
}
Step by step
Solved in 2 steps with 1 images