while True:
print("\n" + "="*40)
print("Выберите математическую операцию:")
print("1. Факториал числа")
print("2. Проверка на простое число")
print("3. Наибольший общий делитель (НОД)")
print("4. Наименьшее общее кратное (НОК)")
print("5. Проверка на точный квадрат")
print("0. Выход из программы")
choice = input("Введите номер операции (0-5): ")
# Блок обработки пользовательского ввода
if choice == '0':
print("Работа программы завершена.")
break
elif choice == '1':
num = int(input("Введите целое число: "))
if num < 0:
print("Результат: Факториал для отрицательных чисел не определен.")
else:
print(f"Результат: Факториал числа {num} равен {factorial(num)}")
elif choice == '2':
num = int(input("Введите целое число: "))
if is_prime(num):
print(f"Результат: Число {num} является простым.")
else:
print(f"Результат: Число {num} НЕ является простым.")
elif choice == '3':
num1 = int(input("Введите первое число: "))
num2 = int(input("Введите второе число: "))
print(f"Результат: НОД({num1}, {num2}) = {gcd(num1, num2)}")
elif choice == '4':
num1 = int(input("Введите первое число: "))
num2 = int(input("Введите второе число: "))
print(f"Результат: НОК({num1}, {num2}) = {lcm(num1, num2)}")
elif choice == '5':
num = int(input("Введите целое число: "))
if is_perfect_square(num):
print(f"Результат: Число {num} является точным квадратом.")
else:
print(f"Результат: Число {num} НЕ является точным квадратом.")