public static void main( String[] args ){
long num1 = 100;
long num2 = 8;
/*long result =*/ gcd( num1, num2 );
public static long gcd( long a, long b ) // a: 100, b: 8
System.out.println( "gcd("+a+","+b+")");
if( b == 0 )
else
/*return*/ gcd( b, a % b ); // a: 100, b: 8
public static long gcd( long a, long b ) // a: 8, b: 4
System.out.println( "gcd("+a+","+b+")");
if( b == 0 )
else
/*return*/ gcd( b, a % b ); // a: 8, b: 4
public static long gcd( long a, long b ) // a: 4, b: 0
System.out.println( "gcd("+a+","+b+")");
if( b == 0 )
// base case
return a;
return gcd( b, a % b ); // a: 8, b: 4, returning 4
return gcd( b, a % b ); // a: 100, b: 8, returning 4
long result = gcd( num1, num2 ); // assigning 4
System.out.println("gcd("+num1+","+num2+")="+result+" (in main)\n");