Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВалерия Шиморина
1 Алгоритм Евклида
2 Наибольший общий делитель Требуется составить программу определения наибольшего общего делителя ( НОД ) двух натуральных чисел. НОД (12, 18) = 6.
3 Обозначим исходные данные как М u N. Постановка задачи выглядит следующим образом : Дано : М, N Найти : НОД ( М, N). известен алгоритмический способ решения этой задачи. Называется он алгоритмом Евклида.
4 Идея алгоритма Евклида если M>N, то НОД ( М, N) = НОД ( М - N, N). Иначе говоря, НОД двух натуральных чисел равен НОД их положительной разности ( модуля их разности ) и меньшего числа.
5 Пусть К - общий делитель М u N (M> N). Это значит, что М = m К, N = n К, где m, n - натуральные числа, причем m > n. Тогда М - N = К (m - n), откуда следует, что К - делитель числа М - N. Значит, все общие делители чисел М и N являются делителями их разности М - N, в том числе и наибольший общий делитель.
6 Второе свойство : НОД ( М, М ) = М.
7 Для " ручного " счета алгоритм Евклида выглядит так : 1) если числа равны, то взять любое из них в качестве ответа, в противном случае продолжить выполнение алгоритма ; 2) заменить большее число разностью большего и меньшего из чисел ; 3) вернуться к выполнению п. 1.
8 Рассмотрим этот алгоритм на примере М =32, N=24: Получили : НОД (32, 24) = НОД (8, 8) = 8, что верно.
9 Описание алгоритма Евклида блок - схемой
N то M:=M-N иначе N:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); whi" title="Программа на АЯ и на Паскале алг Евклид цел М, N нач вывод " Введите М и N" ввод М, N пока М N, повторять нц если M>N то M:=M-N иначе N:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); whi" class="link_thumb"> 10 Программа на АЯ и на Паскале алг Евклид цел М, N нач вывод " Введите М и N" ввод М, N пока М N, повторять нц если M>N то M:=M-N иначе N:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); while MN do begin if M>N then M:=M-N else N:=N-M end; write('Н0Д=',М) end. N то M:=M-N иначе N:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); whi"> N то M:=M-N иначе N:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); while MN do begin if M>N then M:=M-N else N:=N-M end; write('Н0Д=',М) end."> N то M:=M-N иначе N:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); whi" title="Программа на АЯ и на Паскале алг Евклид цел М, N нач вывод " Введите М и N" ввод М, N пока М N, повторять нц если M>N то M:=M-N иначе N:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); whi">
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.