Найти наибольший общий делитель последовательности натуральных чисел(сколько угодно...

0 голосов
15 просмотров

Найти наибольший общий делитель последовательности натуральных чисел(сколько угодно чисел). На C++, либо Pascal


Информатика (15 баллов) | 15 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1599 от 17.12.2017
// Внимание! Если программа не работает, обновите версию!

function gcd(a,b:int64):int64; // НОД
begin
  while b<>0 do begin a:=a mod b; Swap(a,b) end;
  Result:=a
end;

begin
  Writeln('НОД=',ReadSeqIntegerWhile('Ввод завершается нулем: ',t->t>0)
      .Aggregate(int64(0),(a,b)->gcd(a,b)))
end.

Пример
Ввод завершается нулем:  78 294 570 36 0
НОД=6
(150k баллов)