Оба алгоритма выдают правильное решение но валидатор не проходят.
package com.javarush.task.task14.task1420;
/*
НОД
*/
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));
int a = Integer.parseInt(reader.readLine());
int b = Integer.parseInt(reader.readLine());
System.out.println(getPGCD(a, b));
}
private static int getPGCD(int a, int b) {
// while (a * b != 0) {
// if (a > b)
// a = a - b;
// else b = b - a;
// }
// if (a == 0)
// return b;
// return a;
int d = 0;
while (a % 2 == 0 && b % 2 == 0) {
a = a / 2;
b = b / 2;
d++;
}
while (a != b) {
if (a % 2 == 0)
a = a / 2;
else if (b % 2 == 0)
b = b / 2;
else if (a > b)
a = (a - b) / 2;
else b = (b - a) / 2;
}
return (int) (a * Math.pow(2, d));
}
}