В 235 году до н.э. греческий ученый Эратосфен изобрел следующий способ нахождения простых чисел на промежутке от 1 до заданного N: 1. Выписать все целые числа 2,...,N. 2. Зачеркнуть все числа, кратные i = 2 — первому простому числу. 3. Найти первое незачёркнутое число в списке, большее чем i, и присвоить значению переменной i это число. 4. Повторять шаги 2 и 3, пока это возможно. После завершения алгоритма незачеркнутыми останутся все простые числа, меньшие либо равные N. Напишите функцию eratosthenes(N), воспроизводящую данный алгоритм. Ваша функция должна через пробел печатать числа в том порядке, в котором их вычеркивает из списка оригинальный алгоритм. Например, если N = 10, то числа будут вычеркиваться в таком порядке: 4 6 8 10 9. Если для какого-то параметра никакие числа не вычеркиваются, просто не выводите ничего. Пример Ввод eratosthenes(15) Вывод 4 6 8 10 12 14 9 15
Жаль, что симпу поставить не могу. Я когда профильный матан сдавал, всегда обращал внимание на подобные детали в заданиях
чел ну помоги дописать код тип я код написал но хз написать цикл который будет проверять 4 пункт задачи))) --- Сообщение объединено с предыдущим 23 фев 2020 def eratosthenes(N): start, i, final = [j for j in range(2, N + 1)], 2, [] for j in start: if j != i and j % i == 0: final.append(j) start.remove(j) for j in start: if j > i: i = j break for j in start: if j != i and j % i == 0: final.append(j) start.remove(j) print(*final)
Ты как то шаблонно мыслишь, тебе нужен вайл тру и ты делаешь брейк когда не осталось чисел которые больше i.
--- Сообщение объединено с предыдущим 23 фев 2020 --- Сообщение объединено с предыдущим 23 фев 2020 вроде сделал