#include <cstdlib>
#include <iostream>
using namespace std;
int NOD( int a, int b)
{
int c=1;
int d;
if(a>b)
d=b;
else
d=a;
for(int j=1;j<=d;j++)
{
if(a%j==0 && b%j==0)
c=j;
}
return c;
}
int main()
{
int A,B,C;
cout<<"Введите А"<<endl;
cin>>A;
cout<<"Введите В"<<endl;
cin>>B;
cout<<"Введите С"<<endl;
cin>>C;
cout<<"НОД("<<A<<","<<B<<","<<C<<")="<<NOD(NOD(A,B),C)<<endl;
system("PAUSE");
return 0;
}
(Код написан на С++.)
Объявляем функцию gcd, принимающую два целочисленных параметра и возвращающую их наибольший общий делитель. Здесь это вычисляется при алгоритма Евклида.
Затем для удобства определяем ещё одну функцию gcd3, которая принимает уже три аргумента и, используя указанную в условии формулу и описанную выше функцию gcd, вычисляет НОД от трёх чисел.
В основной части программы просто три числа считываются с клавиатуры и выводится ответ.
Код (PascalABC.NET v3.6.2316):
function gcd(a, b: integer): integer;
begin
while a * b <> 0 do
(a, b) := (b, a mod b);
Result := a + b
end;
function gcd3(a, b, c: integer) := gcd(gcd(a, b), c);
begin
var (a, b, c) := ReadInteger3;
print(gcd3(a, b, c))
end.
Пример ввода:
10 40 20
Пример вывода:
10
Поделитесь своими знаниями, ответьте на вопрос:
Программа disc cleanup ищет ненужные программы в следующих папках: a) recycle bin, temporary internet files, documents b) downloaded program files, program files, recycle bin c) temporary i̇nternet files, recycle bin, downloaded program files d) во всех папках компьютера
программа disc cleanup ищет ненужные программы в папках под буквой с)