Напишите процедуру которая вычисляет наибольший общий делитель и наименьшее общее кратное
Перейти к содержимому

Напишите процедуру которая вычисляет наибольший общий делитель и наименьшее общее кратное

Напишите процедуру которая вычисляет наибольший общий делитель и наименьшее общее кратное

Вопрос по информатике:

СРОЧНО
решите пожалуйста задачу
Pascal
Напишите процедуру, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел и возвращает их через изменяемые параметры.
Пример:
Введите два натуральных числа:
10 15
НОД(10,15)=5
НОК(10,15)=30

Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?

Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок — бесплатно!

  • 11.07.2016 08:03
  • Информатика
  • remove_red_eye 18885
  • thumb_up 14
Ответы и объяснения 1

// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

procedure НОДиНОК(a,b:integer; var НОД,НОК:integer);
begin
var c:=a*b;
while b>0 do (a,b):=(b,a mod b); // a — НОД
(НОД,НОК):=(a,c div a)
end;

begin
var (a,b):=ReadInteger2(‘Введите два натуральных числа:’);
var НОД,НОК:integer;
НОДиНОК(a,b,НОД,НОК);
Writeln(‘НОД(‘,a,’,’,b,’) = ‘,НОД);
Writeln(‘НОК(‘,a,’,’,b,’) = ‘,НОК);
end.

Изображение к ответу

  • 12.07.2016 23:10
  • thumb_up 50
Знаете ответ? Поделитесь им!
Как написать хороший ответ?

Чтобы добавить хороший ответ необходимо:

  • Отвечать достоверно на те вопросы, на которые знаете правильный ответ;
  • Писать подробно, чтобы ответ был исчерпывающий и не побуждал на дополнительные вопросы к нему;
  • Писать без грамматических, орфографических и пунктуационных ошибок.

Этого делать не стоит:

  • Копировать ответы со сторонних ресурсов. Хорошо ценятся уникальные и личные объяснения;
  • Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не знаю» и так далее;
  • Использовать мат — это неуважительно по отношению к пользователям;
  • Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?

Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.

Трудности с домашними заданиями? Не стесняйтесь попросить о помощи — смело задавайте вопросы!

Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.

Нахождение НОД и НОК двух чисел — Pascal(Паскаль)

Пусть a и b — целые числа, тогда верны следующие утверждения:

Все общие делители пары a и b являются также общими делителями пары a — b, b;

И наоборот, все общие делители пары a — b и b являются также общими делителями пары a и b; НОД(A, B) = НОД(A — B, B), если A > B; НОД(A, 0) = A.

Если t — произвольный общий делитель a и b, то он делит и разность a — b. Действительно, из a = t * u и b = t * v следует, что a — b = t * u — t * v = t * (u — v). То есть t — также общий делитель а — b и b. Обратно, если t — произвольный делитель общий делитель a — b и b, то он делит и их сумму a — b + b = a. Это можно доказать аналогично предыдущему. Поэтому t — также общий делитель a и b. Делаем вывод, что множество общих делителей a и b совпадает с множеством делителей a — b и b. В частности, совпадают и наибольшие общие делители этих пар. Наибольшее целое, на которое делится число a, есть само число а. Число 0 делится на любое число. Отсюда наибольший общий делитель а и 0 равен а. Доказанная формула(3) позволяет свести вычисление наибольшего делителя одной пары к вычислению наибольшего общего делителя другой пары, в которой числа уже меньше. Очевидная же формула (4) дает нам понять, когда надо остановиться.

Вариант 5 Алгоритм Евклида с делением

Пусть a и b — целые числа, а r — остаток от деления a на b. Тогда НОД(a, b) = НОД(b, r). Эта формула также позволяет свести вычисление наибольшего общего делителя одной пары чисел к вычислению наибольшего обшего делителя другой пары чисел.

VladHub18 / FunctionsTask 8.py

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

a = int ( input ())
b = int ( input ())
def NOD ( a , b ):
while a != b :
if a > b :
a = a — b
else :
b = b — a
return a
print ( NOD ( a , b ))
def NOK ( a , b ):
a = a * b // NOD ( a , b )
return a
print ( NOK ( a , b ))

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *