Форум » Обработка целых чисел » Задача 25(4114) » Ответить

Задача 25(4114)

dim18: Здравствуйте! У меня правильный ответ получается при другой длине (540 вместо 90). Подскажите, пож., в чем ошибка. [pre2] 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. Для каждой найденной последовательности запишите в порядке возрастания простые # числа, стоящие на границах данных последовательностей. В ответе запишите эти пары # простых чисел в порядке возрастания первого числа в паре. [/pre2]

Ответов - 3

Поляков: dim18 пишет: len(''.join(map(str, a))) Вы вычисляете длину символьной строки, составленной из чисел.

dim18: Понял. Надо считать количество подряд идущих составных чисел, а не суммарную длину. Спасибо!

dim18: [pre2] 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 = [] [/pre2]




полная версия страницы