Составить программу нахождения наименьшего общего кратного(нок) двух чисел m и n, используя формулу n*m=нод(m,n)*нок(n,m). разработать тесты для проверки правильности работы программы.
В программе на Питоне реализован алгоритм Евклида для нахождения НОД и найдено НОК из формулы из условия. Большая часть тестов для проверки использует случайные числа, для которых, например, проверяется, что НОК и НОД от (x, y) не изменяются, если их искать от (y, x), и т.д. (assert expr выбрасывает исключение, если expr ложно, так что если test сработало без ошибок, значит, всё ок)
1) Это кнопки, иконки, поля ввода. Кнопки нажимаются, в поля вводится текст. 2) В Windows -строка заголовка – верхняя строка окна, в которой находится имя программы или имя окна; кнопка сворачивания окна; кнопка восстановления окна кнопка закрытия окна кнопка системного меню строка меню панель инструментов полосы прокрутки рабочее поле строка состояния рамка окна. Вроде все. 3) 1. System 32. Рабочий стол. 2. Мой компьютер, Мои документы, Корзина, Сетевые окружения(Сеть) и управляющие объекты Windows. 4) 1. Иконки, панель задач, папки 2. Ярлык это ссылка на файл, который может находиться где угодно на ПК, а значок это сам файл 3. На панели задач располагается запущенные приложения, панель быстрого доступа, часы... . 4. Папка "Мой компьютер" 5) Ярлык дает ссылку на значок,который запускает. 6) Пуск,панель задач,программы в фоновом режиме,задачи или все, что ты туда поместишь.
В программе на Питоне реализован алгоритм Евклида для нахождения НОД и найдено НОК из формулы из условия. Большая часть тестов для проверки использует случайные числа, для которых, например, проверяется, что НОК и НОД от (x, y) не изменяются, если их искать от (y, x), и т.д. (assert expr выбрасывает исключение, если expr ложно, так что если test сработало без ошибок, значит, всё ок)
def gcd_lcm(a, b):
x, y = a, b
while x != 0 and y != 0:
x, y = y % x, x
gcd = x + y
lcm = a // gcd * b
return gcd, lcm
def test():
from random import randint
x, y, z = [randint(1, 1000) for _ in range(3)]
xx = gcd_lcm(x, x)
xy = gcd_lcm(x, y)
yx = gcd_lcm(y, x)
yz = gcd_lcm(y, z)
x1 = gcd_lcm(x, 1)
zx_y = gcd_lcm(z * x, y)
zx_zy = gcd_lcm(z * x, z * y)
gcd_xy_z = gcd_lcm(xy[0], z)[0]
gcd_x_yz = gcd_lcm(x, yz[0])[0]
assert xx == (x, x)
assert xy == yx
assert xy[1] % xy[0] == 0
assert xy[1] % x == 0
assert xy[1] % y == 0
assert x % xy[0] == 0
assert y % xy[0] == 0
assert x1[0] == 1
assert x1[1] == x
assert zx_y[0] % xy[0] == 0
assert zx_y[1] % xy[1] == 0
assert zx_zy[0] == z * xy[0]
assert zx_zy[1] == z * xy[1]
assert gcd_xy_z == gcd_x_yz
assert gcd_lcm(2**7 * 3**15, 3**4 * 5**3) == (3**4, 2**7 * 3**15 * 5**3)
assert gcd_lcm(7 * 917887, 7 * 850177) == (7, 7 * 850177 * 917887)
if __name__ == "__main__":
for _ in range(100):
test()