Алгоритм Евклида Составила: Антонова Е.П. 2009г..

Презентация:



Advertisements
Похожие презентации
Алгоритм Евклида. Наибольший общий делитель Требуется составить программу определения наибольшего общего делителя ( НОД ) двух натуральных чисел. НОД.
Advertisements

Тема:Программирование цикла на Паскале На дом: §39-40.
АЛГОРИТМ ЕВКЛИДА (нахождение наибольшего общего делителя (НОД) двух натуральных чисел)
Программирование цикла. Алгоритм Евклида. Цель урока: освоить программирование циклов с предусловием на примере Алгоритма Евклида. Мостовая Елена Евгеньевна,
АЛГОРИТМ ЕВКЛИДА. Алгоритм Евклида - это алгоритм нахождения наибольшего общего делителя (НОД) двух целых неотрицательных чисел. Евклид ( до. н.
Программирование циклических алгоритмов на Паскале Программное управление работой компьютера Домашнее задание: §39, §40.
Задача: даны два числа, найти их наибольший общий делитель.
Задача: даны два числа, найти их наибольший общий делитель.
Алгоритм Евклида. Два варианта решения Программирование. Сочетание циклов и ветвлений. 9 класс Евклид Александрийский ( род. 330 г. до н. э.) - известный.
Алгоритмические структуры 1.Линейный 2.Ветвление 3.Цикл.
program Stepeny_a; Uses Crt; var a,b,c : real; begin writeln ( Введите числа a и b ); readln ( a, b ); c := a; while c < b do begin writeln (c:8:2) ;
Форми представлення алгоритмів. Базові фрагменти схеми алгоритму.
Программирование циклов Паскаль. 9 класс Криворотова Л.Н. МОУ"Гимназия 5", г.Тырныауз.
Организация циклов Компьютер может заданное число раз выполнить одни и те же действия с разными данными. Повторяющиеся действия в программировании называются.
Сравниваем циклы, или…. Андрей Петрович Ершов … Программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению.
Условие? Действия1Действия2 данет. Задача С клавиатуры вводятся не равные между собой числа а и b. Большее из этих чисел заменить их суммой, а меньшее.
Тема: «Применение алгоритма Евклида при решении задач »
Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример.
1.Понятие команды ветвления 2.Общий вид команды ветвления 3.Примеры 4.Операторные скобки 5.Самостоятельная работа 6.Домашнее задание.
РЕКУРСИЯ РЕКУРРЕНТНЫЕ СООТНОШЕНИЯ У попа была собака - он ее любил. Она съела кусок мяса - он ее убил. Вырыл ямку - закопал, Взял дощечку – написал: У.
Транксрипт:

Алгоритм Евклида Составила: Антонова Е.П. 2009г.

Постановка Задачи Рассмотрим следующую задачу: требуется составить программу определения наибольшего общего делителя (НОД) двух натуральных чисел. Вспомним математику. Наибольший общий делитель двух натуральных чисел это самое большое натуральное число, на которое они делятся нацело. Например, у чисел 12 и 18 имеются общие делители: 2, 3, 6. Наибольшим общим делителем является число 6. Это записывается так: НОД(12,18) = 6. Обозначим исходные данные как М и N. Постановка задачи выглядит следующим образом: Дано: М, N Найти: НОД(М,N).

Решение Не существует формулы для нахождения НОД двух чисел. Но зато достаточно давно, задолго до появления ЭВМ, был известен алгоритмический способ решения этой задачи. Называется он алгоритмом Евклида.

Идея алгоритма Идея этого алгоритма основана на том свойстве, что если M>N, то НОД(М,N) = НОД(М - N,N). Иначе говоря, НОД двух натуральных чисел равен НОД их положительной разности и меньшего числа.

Доказательство Пусть К общий делитель М и. N (M>N). Это значит, что М = тК, N = пК, где т, п натуральные числа, причем т>п. Тогда М - N = К(т - п), откуда следует, что К делитель числа М - N. Значит, все общие делители чисел М и N являются делителями их раз­ ности M-N, в том числе и наибольший общий делитель. Отсюда: НОД(М,N) = НОД(М - N,N). Второе очевидное свойство: НОД(М,М) = М.

Алгоритм Евклида если числа равны, то взять любое из них в качестве ответа, в противном случае продолжить выполнение алгоритма; заменить большее число разностью большего и меньшего из чисел; вернуться к выполнению п. 1.

Блок-схема алгоритма Евклида

Задание для практики: Напишите программу, реализующую алгоритм Евклида для нахождения наибольшего общего делителя для двух натуральных чисел

Программа на языке Паскаль Program Evklid; var М, N : integer; begin writeln('Введите M и N'); readln(M,N); while MN do begin if M>N then M:=M-N else N:=N-M end; write('HOD=',M) end.