Форум » Обработка целых чисел » 25 задание, №3779 » Ответить

25 задание, №3779

Икс: Здравствуйте! Я написала программу, но она очень долго работает. Я бы хотела узнать, можно ли как-то ее изменить, чтобы она считала быстрее? [pre2] def div(n): d = set() for i in range(1, int(n ** 0.5) + 1): if n % i == 0: if i % 2 == 1: d.add(i) if (n // i) % 2 == 1: d.add(n // i) return d for j in range(78_000_000, 85_000_001): s = div(j) if len(s) == 5: print(s) print(j, max(s)) [/pre2]

Ответов - 4

Поляков: Это задача 25.151 из основного сборника. Все решения 25-х задач на есть сайте.

Икс: поняла, спасибо!!

Ельцова: Здравствуйте, написала вот такую программу, но находит дополнительные значения, например 78083732 19520933 (делители [1, 47, 2209, 415339, 19520933] ). Вроде бы это число тоже подходит, но в ответе его нет. [pre2] def d(a): q=[] for j in range(1,round(a**0.5)): if a%j==0: if j%2!=0: q.append(j) if (a//j)%2!=0: q.append(a//j) q.sort() if len(q)>=1: return q[len(q)-1],len(q) else: return 0,0 for i in range(78000000,85000000+1): if d(i)[1]==5: print(i,d(i)[0]) [/pre2]


Поляков: Ельцова пишет: например 78083732 19520933 (делители [1, 47, 2209, 415339, 19520933] ). У этого числа нечетные делители [1,47,2209,8837,415339,19520933].



полная версия страницы