Геометрический алгоритм Евклида позволяет найти наибольший общий делитель НОД. Напишем программу с Геометрическим алгоритмом Евклида и изучим цикл while.

Цикл while - это цикл с условием. Пока условие истинно тело цикла выполняется.

while (условие выполнения) {
  тело цикла;
}

Программа нахождения наибольшего общего делителя с циклом while написана и проверена в IDE Geany.

#include <iostream>
int x = 30855, y = 41514;

int main()
{
  while (x != y) {
    x > y ? x = x - y : y = y - x;
  }
  std::cout << "НОД = " << x << std::endl;
  return 0;
}

Результат:

НОД = 561


------------------
(program exited with code: 0)
Press return to continue

Ещё один алгоритм Евклида с циклом while:

#include <iostream>
int x = 30855, y = 41514;

int main()
{
  while (x % y != 0 && y % x != 0) {
    x > y ? x = x % y : y = y % x;
  }
  std::cout << "НОД = " << std::min(x, y) << std::endl;
  return 0;
}

И тот же результат:

НОД = 561


------------------
(program exited with code: 0)
Press return to continue

Подробнее об Алгоритме Евклида можно узнать из Википедии.