Я делаю программу, в которой вы вводите два целых числа, и программа находит наибольший общий делитель между двумя числами.
Он работает нормально, за исключением того, что печатает «1» как GCD, даже если два числа должны иметь разные GCD. (Пример: 4 и 64. GCD должно быть 4, но 1 все еще печатается.) Я не могу понять, что не так с моим кодом.
Для тех, кто хочет ответить, используя один метод, я могу 't: это задание, которое требует, чтобы я использовал два разных метода в одной и той же программе. Пожалуйста, помогите?
Спасибо за чтение и хорошей недели.
Вот мой код:
import java.util.Scanner;
public class greatestCommonDivisorMethod {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
//Number entry prompts
System.out.print("Please enter first integer: ");
int num1 = input.nextInt();
System.out.print("Please enter second integer: ");
int num2 = input.nextInt();
//Result printed
System.out.println("The greatest common divisor of " +num1+ " and " +num2+ " is " +gcd(num1, num2)+".");
}
public static int gcd(int num1, int num2) {
int gcd = 1;
int k = 2;
while (num1 <= k && k <= num2)
{
if (num1 % k == 0 && num2 % k == 0)
gcd = k;
k++;
}
return gcd;
}
}