М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
14062006123
14062006123
28.02.2020 17:11 •  Информатика

Задача №112200. Гиперпростое число Простое число называется гиперпростым, если любое число, получающееся из него откидыванием нескольких последних цифр, тоже является простым. Например, число 733 -– гиперпростое, так как и оно само, и числа 73 и 7 -– простые. Напишите программу, которая определяет, верно ли, что переданное ей число N – гиперпростое. Используйте функции. Учтите, что число 1 не считается простым.

Входные данные
Входная строка содержит натуральное число N .

Выходные данные
Программа должна вывести слово 'YES', если переданное её число – гиперпростое, и слово 'NO', если это число не гиперпростое.

Примеры
входные данные
733
выходные данные
YES
входные данные
1734
выходные данные
NO

👇
Ответ:
Добрый день!

Давайте решим эту задачу шаг за шагом.

Перед нами стоит задача написать программу, которая определяет, является ли заданное число гиперпростым или нет.

Первым шагом нам нужно реализовать функцию, которая будет проверять, является ли число простым. Простое число - это число, которое делится только на 1 и на само себя без остатка. Но в данной задаче нужно исключить число 1, так как оно не считается простым. Вот как будет выглядеть эта функция:

```python
def is_prime(n):
if n == 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
```
Эта функция принимает на вход число `n` и проверяет, делится ли оно нацело на все числа в интервале от 2 до корня из `n`. Если делится хотя бы на одно число, то функция возвращает значение `False`, иначе возвращает `True`.

Далее нам нужно реализовать функцию, которая будет проверять, является ли число гиперпростым. Для этого мы будем последовательно откидывать последние цифры числа и проверять каждое полученное число на простоту. Если все полученные числа являются простыми, то число считается гиперпростым. Вот как будет выглядеть эта функция:

```python
def is_hyperprime(n):
str_n = str(n)
for i in range(len(str_n)):
if not is_prime(int(str_n[:len(str_n)-i])):
return False
return True
```
Эта функция принимает на вход число `n`, переводит его в строку, и затем проходит циклом от 0 до длины строки числа `n`. На каждом шагу откидывается последняя цифра числа с помощью среза `str_n[:len(str_n)-i]`, переводится в целое число и передается в функцию `is_prime()` для проверки на простоту. Если хотя бы одно из полученных чисел не является простым, функция возвращает значение `False`, иначе возвращает `True`.

Теперь, когда у нас есть две функции для проверки простоты числа и проверки гиперпростоты числа, мы можем написать основную часть программы. Вот как будет выглядеть основная часть программы:

```python
n = int(input()) # считываем число N
if is_hyperprime(n):
print("YES")
else:
print("NO")
```

В этой программе мы считываем число `n` с помощью функции `input()`, затем вызываем функцию `is_hyperprime()` и в зависимости от ее результата выводим на экран слово "YES" или "NO" с помощью функции `print()`.

Вот, как выглядит полный код программы:

```python
def is_prime(n):
if n == 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True

def is_hyperprime(n):
str_n = str(n)
for i in range(len(str_n)):
if not is_prime(int(str_n[:len(str_n)-i])):
return False
return True

n = int(input())
if is_hyperprime(n):
print("YES")
else:
print("NO")
```

Программа готова! Если у вас остались вопросы, не стесняйтесь задавать. Я готов помочь!
4,6(24 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ