Помогите с оптимизированием кода!

Arschik

Новичок
Пользователь
Апр 5, 2020
6
0
1
Вот условие задачи:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [568 023; 569 230], число, имеющее максимальное количество различных натуральных делителей, если таких чисел несколько — найдите минимальное из них. Выведите на экран количество делителей такого числа и само число.
Например, в диапазоне [2; 48] максимальное количество целых различных натуральных делителей имеет число 48, поэтому для этого диапазона вывод на экране должна содержать следующие значения:
10 48
Я написал вот такой код:
Python:
a = range(568023,569231)
c = 0
for i in a:
    b = 0
    for v in range(1,i + 1):
        if i % v == 0:
            b += 1
    if b > c:
        num = i
        c = b
print(c,num)
Данный код выполняется очень долго. Помогите сделать его работу быстрее!
 

lynulx

Модератор
Команда форума
Модератор
Авг 9, 2020
139
19
18
Вот условие задачи:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [568 023; 569 230], число, имеющее максимальное количество различных натуральных делителей, если таких чисел несколько — найдите минимальное из них. Выведите на экран количество делителей такого числа и само число.
Например, в диапазоне [2; 48] максимальное количество целых различных натуральных делителей имеет число 48, поэтому для этого диапазона вывод на экране должна содержать следующие значения:
10 48
Я написал вот такой код:
Python:
a = range(568023,569231)
c = 0
for i in a:
    b = 0
    for v in range(1,i + 1):
        if i % v == 0:
            b += 1
    if b > c:
        num = i
        c = b
print(c,num)
Данный код выполняется очень долго. Помогите сделать его работу быстрее!
вся проблема в долгом алгоритме поиска делителей, обратите внимание именно на него
 

Форум IT Специалистов