• Предмет: Информатика
  • Автор: mister57loy88
  • Вопрос задан 7 лет назад

СРОЧНО || PYTHON ||
Простым числом будем называть натуральное число, большее единицы и делящееся только на единицу и на само себя. Выпишем все простые числа в порядке возрастания и i-ое в этом порядке число обозначим pi (число 2 при этом будет иметь номер 1). Так, например, p1 = 2, p2 = 3, p3 = 5, p52 = 239.

Скажем, что число pi является сверхпростым, если i тоже простое.

Дано натуральное число k. Упорядочим все сверхпростые числа по возрастанию. Найдите k-ое сверхпростое число в этом порядке.

Ответы

Ответ дал: tutu007
1

Ответ:

def simple(x:int):

   count=0

   if x == 1 or x == 0:

       return False

   for i in range(1,x//2+1):

       if x%i==0:

           count+=1

       if count>1:

           return False

   return True

k=int(input())

i=0

numb=0

mas=[]

while i<k:

   numb+=1

   if simple(numb):

       i+=1

       if simple(i):

           ends=numb,i

           mas.append((numb,i))

print(mas)

print(ends)

Нужны ли поправки по выводу или сами сделаете?


mister57loy88: код выдаёт ошибку на ввод единицы и неправильные ответы на остальные
tutu007: приведите пример входных и выходных данных, все верно работает(если я правильно понял), кроме единицы - это исключение
mister57loy88: например: вход 4, выход: 17. Программа выдаёт 11
tutu007: def simple(x:int):
count=0
if x == 1 or x == 0:
return False
for i in range(1,x//2+1):
if x%i==0:
count+=1
if count>1:
return False
return True
k=int(input())
i=0
numb=0
mas=[]
count=0
while count numb+=1
if simple(numb):
i+=1
if simple(i):
count+=1
ends=numb,i
mas.append((numb,i))
print(ends[0])
mister57loy88: Добавь просто второй ответ с пробелами
mister57loy88: или ты просто вывод сделал?
mister57loy88: вывод я сделал
tutu007: ты попросил меня программу исправить, чтоб выводило как надо - я сделал. Какие еще пробелы?
Вас заинтересует