Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
1 / 1 / 0
Регистрация: 12.10.2017
Сообщений: 220
1

Используя алгоритм Евклида, найти наибольший общий делитель n и m

22.10.2019, 21:17. Показов 4047. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Работает неправильно. Не понимаю где ошибка
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import math
print("Задание 88(g) ")
n = input("Введите число n ")
n = int(n)
m = input("Введите число m ")
m = int(m)
print("N = ", n)
print("M = ", m)
while (n < m and n>m):
    if m>=n:
        n = n-m
    elif(m>=n):
        m = m-n
nod = m
print("Результат",m)
Добавлено через 33 секунды
Python
1
print("Результат",nod)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2019, 21:17
Ответы с готовыми решениями:

Найти наибольший общий делитель двух чисел благодаря алгоритму Евклида
Найти наибольший общий делитель двух чисел с помощью алгоритма Евклида. Помогите пожалуйста на...

Используя функцию NOD2(A, B), находящую наибольший общий делитель (НОД)
Используя функцию NOD2(A, B), находящую наибольший общий делитель (НОД) двух целых положительных...

Найти наибольший общий делитель
Написать программу, которая находит НОД(А,В), используя алгоритм Евклида

Вычислите наибольший общий делитель чисел A и B согласно алгоритму Евклида
Задание на рекурсивный алгоритме: Вычислите наибольший общий делитель чисел A и B согласно...

5
5 / 3 / 3
Регистрация: 20.09.2018
Сообщений: 21
22.10.2019, 22:09 2
А что именно неправильно работает? Я вижу как минимум одну ошибку: если nod число, то вместе со строкой оно так просто не выведется. Но, как я понимаю, загвоздка не в этом
0
3573 / 2174 / 570
Регистрация: 02.09.2015
Сообщений: 5,492
22.10.2019, 22:25 3
Цитата Сообщение от Ивванн Посмотреть сообщение
while (n < m and n>m):
всегда False.
0
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
22.10.2019, 22:36 4
Пойдет?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def gcd(a, b):
    while a != b:
        if a > b:
            a = a - b
        else:
            b = b - a
    print(a)
 
 
if __name__ == '__main__':
    a = int(input())
    b = int(input())
    gcd(a, b)
0
5 / 3 / 3
Регистрация: 20.09.2018
Сообщений: 21
22.10.2019, 22:47 5
Конечно оно всегда False будет. Как n может быть одновременно и больше, и меньше m? 3 больше 2, но 2 меньше 3, оттого и False
0
3573 / 2174 / 570
Регистрация: 02.09.2015
Сообщений: 5,492
23.10.2019, 05:15 6
Python
1
2
3
4
5
from math import gcd
 
n = int(input("n = "))
m = int(input("m = "))
print(gcd(n, m))
Добавлено через 3 минуты
Рекурсивный вариант:
Python
1
2
def gcd(a, b):
    return b if a == 0 else gcd(b % a, a)
Добавлено через 2 минуты
Итеративный:
Python
1
2
3
4
def gcd(a, b):
    while a != 0:
        a, b = b % a, a
    return b
0
23.10.2019, 05:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2019, 05:15
Помогаю со студенческими работами здесь

Даны действительные числа n m. Найти самый большой делитель этих чисел, используя алгоритм Евклида
Даны действительные числа n m. Найти самый большой делитель этих чисел, используя алгоритм Евклида.

Сократить дробь, используя наибольший общий делитель
Даны два натуральных числа a и b, обозначающие соответственно числитель и знаменатель дроби....

Найти наибольший общий делитель, используя алгоритм Евклида
Даны n натуральных чисел, Найти их наибольший общий делитель, используя алгоритм Евклида и...

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

Найти наибольший общий делитель, используя алгоритм Евклида
Даны целые числа a и b. Найти их наибольший общий делитель (int GreatestCommonDivisor(int a, int...

Используя алгоритм Евклида, найти наибольший общий делитель (НОД)
Дорогие программисты! Не могу справиться с задачками! Буду благодарна за помощь или подсказку! ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru