Приложение г
(обязательное)
Листинг
программы теста
Ферма
def
fermat_test(number_to_test, base):
if
number_to_test <= 3:
return
"Введите число больше 3"
if
base <= 1 or base >= number_to_test:
return
f"Основание должно быть в диапазоне
от 2 до {number_to_test - 1}"
result
= pow(base, number_to_test - 1, number_to_test)
if
result == 1:
return
f"{number_to_test} — возможно простое (при
основании = {base})"
else:
return
f"{number_to_test} — составное (при основании
= {base})"
try:
number_to_test
= int(input("Введите число для проверки
(больше 3): "))
base
= int(input(f"Введите основание (2 ≤ основание
< {number_to_test}): "))
print(fermat_test(number_to_test,
base))
except
ValueError:
print("Ошибка:
введите целые числа.")
Приложение д
(обязательное)
Листинг
программы возведения
числа в степень по модулю
def
mod_pow(a, b, m):
result
= 1
a
= a % m
while
b > 0:
if
b % 2 == 1:
result
= (result * a) % m
a
= (a * a) % m
b
= b // 2
return
result
a
= int(input("число, которое нужно возвести
'a': "))
b
= int(input("значение степени 'b': "))
m
= int(input("модуль 'mod': "))
result
= mod_pow(a, b, m)
print("Результат
возведения в степени:", result)