Ускорение кода в работе с миллионными числами

Найдите все натуральные числа, принадлежащие отрезку [35 000 000; 40 000 000], у которых ровно пять различных нечётных делителей (количество чётных делителей может быть любым). В ответе перечислите найденные числа в порядке возрастания.

for i in range(35000000,40000000+1):
    cnt=0
    sqrt=round(i**0.5)
    for j in range(1,sqrt+1):
        if i%j==0:
            if j%2==1:
                cnt+=1
            k=i%j
            if j%2==1:
                cnt+=1
                if j==k:
                    cnt-=1
        if cnt>5:
            break
    if cnt==5:
        print(i)
    

работает очень долго, измените код, чтобы он заработал быстрее

UPDATE

import math
for i in range(35000000,40000000+1):
    cnt=0
    sqrt=int(math.sqrt(i))
    for j in range(1,sqrt+1,2):
        if i%j==0:
            if j%2==1:
                cnt+=1
            k=i%j
            if k%2==1:
                cnt+=1
                if j==k:
                    cnt-=1
        if cnt>5:
            break
    if cnt==5:
        print(i)
    

Ответы (0 шт):