Разработайте программу, которая будет находить наименьшее простое число, большее заданного числа N, и вычислять его степень. Затем программа должна находить факториал полученной степени и выводить результат.
Дополнительно, программа должна проверять, является ли полученный результат палиндромом (число, читающееся одинаково в обоих направлениях). Если результат является палиндромом, программа должна находить сумму цифр полученного числа и выводить её.
Заложенные вычисления по нахождению простого числа, возведению в степень, вычислению факториала и проверки на палиндром создадут множество вычислительных операций для выполнения этого задания.
Answers & Comments
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def calculate_factorial(n):
factorial = 1
for i in range(2, n+1):
factorial *= i
return factorial
def is_palindrome(n):
return str(n) == str(n)[::-1]
def get_digit_sum(n):
return sum(int(digit) for digit in str(n))
def find_smallest_prime_power(n):
current_number = n + 1
while True:
if is_prime(current_number):
power = find_power(current_number, n)
factorial = calculate_factorial(power)
if is_palindrome(factorial):
return factorial, power, get_digit_sum(factorial)
current_number += 1
def find_power(prime_num, n):
power = 1
while prime_num ** power <= n:
power += 1
return power - 1
# Пример использования:
N = 10
result, power, digit_sum = find_smallest_prime_power(N)
print("Наименьшее простое число, большее " + str(N) + ":", result)
print("Степень числа:", power)
print("Факториал степени:", result)
print("Сумма цифр факториала степени:", digit_sum)
``
Эта программа будет искать наименьшее простое число, большее заданного числа N, и вычислять его степень. Затем она найдет факториал полученной степени и проверит, является ли результат палиндромом. Если результат является палиндромом, программа выведет факториал, его степень и сумму цифр числа факториала.