Advertisement
marfach

нок и нод python

Oct 18th, 2023
1,066
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.90 KB | Source Code | 0 0
  1. import sys
  2. import math
  3.  
  4. def lcm(arr):
  5.     if len(arr) == 0:
  6.         raise ValueError("Массив пустой")
  7.    
  8.     lcm = arr[0]
  9.     for i in range(1, len(arr)):
  10.         lcm = lcm * arr[i] // math.gcd(lcm, arr[i])
  11.    
  12.     return lcm
  13.  
  14. def gcd(arr):
  15.     if len(arr) == 0:
  16.         raise ValueError("Массив пустой")
  17.    
  18.     gcd = arr[0]
  19.     for i in range(1, len(arr)):
  20.         gcd = math.gcd(gcd, arr[i])
  21.    
  22.     return gcd
  23.  
  24. try:
  25.     numbers = input("Введите числа через пробел: ").split()
  26.     numbers = [int(num) for num in numbers]
  27.     for i in numbers:
  28.         if i < 0:
  29.             print("Должны быть целые числа!")
  30.             sys.exit()
  31.    
  32.     lcm = lcm(numbers)
  33.     gcd = gcd(numbers)
  34.    
  35.     print("НОК:", lcm)
  36.     print("НОД:", gcd)
  37.  
  38.  
  39.  
  40.  
  41. except ValueError as e:
  42.     print("Ошибка ввода:", e)
Tags: python math
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement