Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.
Входные данные:
Входная строка содержит два числа, разделённые пробелом – a и b .
Выходные данные:
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.
Примеры:
Входные данные:
21 14
Выходные данные:
7 3
import java.lang.*;
class {
public static void main(String[] args){
Scanner sc = new Scanner(System.in); // то для ввода
System.out.print("Enter ch: ");
int ch = sc.nextInt();
int size = 0;
int toWil = 1;
int i = 1;
while(toWil == 1){
ch /= (10 * i);
if(ch == 0){
toWil = 0;
}
else{
size++;
};
};
int arr[] = new int[size];
i = 1;
while(toWil == 0){
ch /= (10 * i);
if(ch == 0){
toWil = 1;
}
else{
arr[i - 1] = ch;
};
};
i = 0;
while(toWil == 1){
arr[i] += 4;
if(arr[i] >= 10){
if(i == (size - 1)) {
}
else{
arr[i + 1] += 1;
};
};
};
for(i = size; i >= 1; i++){
System.out.print(arr[i]);
}
}
}
import java.lang.*;
class {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a, b, c;
System.out.print("Enter a: "); a = sc.nextInt();
System.out.print("Enter b: "); b = sc.nextInt();
System.out.print("Enter c: "); c = sc.nextInt();
int pol[] = new int[3];
pol[0] = a;
pol[1] = b;
pol[2] = c;
for(int i = 0; i < 3; i++){
if(pol[i] < 0){
pol[i] = 0;
};
};
for(int i = 1; i < 3; i++){
pol[0] += pol[i];
};
System.out.print("sum: " + pol[0]);
}
}