Search code examples
javaeclipsegreatest-common-divisor

GCD input number


I would need help to where i can manually add the input numbers within the script. If you see that a= 273 and b=108 I would like that to print the actually GCD but I am not actually getting the correct input. I am doing something simple but it is still not working. Also would this put in absolute terms, meaning if i put a negative will it make it a positive.

Edit: I am not trying to use a scanner class.

public class Divisor 
{
    private static int a;
    private static int b;
    {
    a= 273;
    b=108;
    }
    private static int returnNumber(int a, int b) {
        if (b == 0) {
            return a;
        }
        return returnNumber(b, a % b);
    }

    public static void main(String[] args) {

        System.out.println(returnNumber(a, b));
    }
}

Solution

  • You could use Scanner from java.util, e.g.

        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        System.out.println(a + " " + b);
    

    Or BufferedReader from java.io:

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(reader.readLine());
        int b = Integer.parseInt(reader.readLine());
        System.out.println(a + " " + b);
    

    The previous snippet assumes each number is in a different line.

    BTW, it's a good idea to put these lines inside a try-catch block with IOException.

    EDIT: As @musical_coder mention, you can also use command line arguments, here is an example:

        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        System.out.println(a + " " + b);
    

    In this case you should run you program with:

    $ java Divisor <first number> <second number>