Автор | Сообщение |
|
Отправлено: 06.02.22 15:41. Заголовок: Задача 25(4114)
Здравствуйте! У меня правильный ответ получается при другой длине (540 вместо 90). Подскажите, пож., в чем ошибка. def complex(c): k = 2 for d in range(2, round(c ** 0.5) + 1): if c % d == 0: k = 0 break if k == 2: return False return True a = [] for c in range(3, 1000000): if complex(c): a.append(c) if not complex(c): if len(''.join(map(str, a))) >= 540: print(a[0] - 1, a[-1] + 1) a = [] # ответ 360653 360749 # 370261 370373 # 396733 396833 # 492113 492227 # 604073 604171 # 838249 838349 # 860143 860239 # 927869 927961 # (№ 4114) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому # отрезку [3; 1000000] последовательности подряд идущих составных чисел длиной не менее # 90. Для каждой найденной последовательности запишите в порядке возрастания простые # числа, стоящие на границах данных последовательностей. В ответе запишите эти пары # простых чисел в порядке возрастания первого числа в паре.
|
|
|
Ответов - 3
[только новые]
|
|
|
| Администратор
|
Сообщение: 3271
|
|
Отправлено: 06.02.22 17:53. Заголовок: dim18 пишет: len(..
dim18 пишет: цитата: | len(''.join(map(str, a))) |
|
Вы вычисляете длину символьной строки, составленной из чисел.
|
|
|
|
Отправлено: 06.02.22 20:45. Заголовок: Понял. Надо считать ..
Понял. Надо считать количество подряд идущих составных чисел, а не суммарную длину. Спасибо!
|
|
|
|
Отправлено: 06.02.22 20:50. Заголовок: def complex(c): ..
def complex(c): k = 2 for d in range(2, round(c ** 0.5) + 1): if c % d == 0: k = 0 break if k == 2: return False return True a = [] for c in range(3, 1000000): if complex(c): a.append(c) if not complex(c): if len(a) >= 90: print(a[0] - 1, a[-1] + 1) a = []
|
|
|
|