The code takes two integers, and if they are negative, they are converted to positive. If a character or a string is entered, an exception is thrown.
package com.codegym.task.task14.task1420;
/*
GCD
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String snumber = reader.readLine();
String snumber1 = reader.readLine();
System.out.println(positiveNumber(snumber, snumber1));
}
public static int positiveNumber(String snumber, String snumber1){
try{
int num1 = Integer.parseInt(snumber);
int num2 = Integer.parseInt(snumber1);
// Converts num1 to a positive number.
if(num1 < 0)
{
int placeHolder = num1 * -2;
num1 = num1 + placeHolder;
}
// Converts num2 to a positive number.
if(num2 < 0)
{
int placeHolder = num2 * -2;
num2 = num2 + placeHolder;
}
// Find the gcd.
int gcd = 1;
for(int i = 1; i <= num1 && i <= num2; i++)
{
if (num1 % i == 0 && num2 % i == 0)
{
gcd = i;
}
}
return gcd;
}catch (NumberFormatException e){
throw new NumberFormatException("Both inputs must be a positive number.");
}
}
}