Оптимизация программы, которая находит все простые делители натурального числа N

517 просмотра
0
0 Комментариев

Что можно оптимизировать в данной программе, находящей все простые делители натурального числа N?

import math
def pr(r,n):
    if n % r == 0:
        m = int(math.sqrt(r))
        g = 2
        while g <= m:
            if r % g == 0:
                return
            g += 1
        print(r, end=' ')
        return
    else:
        return
n = int(input())
pr(2, n)
for i in range(3, n + 1, 2):
    pr(i, n)


Добавить комментарий

1 Ответы

Python Опубликовано 16.12.2018
0

def pr(r, n=2):
    while n <= r:
        if r % n:
            n += 1
        else:
            r //= n
            yield n
 
print(set(pr(110)))

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up