@rofys1967

Как перескочить в range преждевременно?

Как мне сделать так, чтобы при выполнении условия i % a == 0, i повышалось на 1 именно в range.
Грубо говоря, когда условие выполняется, необходимо чтобы "i" в range шёл дальше

for i in range (1,100000000):
        for a in range (2,i):
            if i % a == 0:
                pass
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Использовать break во внутреннем цикле.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Похоже автор занимается расчетом простых чисел.

Значить так. Четные числа - всегда - составные. Поэтому их можно даже не проверять и сразу прыгать по нечетным 3,5,7....

Внутренний цикл не надо делать от 2 до i. Делитель 2 мы уже исключили выше. Поэтому начинаем с тройки и гоним не до n а до квадратного корня из n. Или наоборот возводим в квадрат. Тут надо понять что для Python быстрее будет. Я на С++ делал там по другому.

Для более глубокой оптимизации все найденные простые - пишутся в array и участвуют во внутреннем цикле как делители. Это еще быстрее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы