Форум » Обработка целых чисел » 2850 » Ответить

2850

nikolya: Задача: (№ 2850) Рассматриваются целые числа, принадлежащих числовому отрезку [356738; 404321], которые представляют собой произведение двух различных простых делителей. В ответе запишите количество таких чисел и такое из них, простые делители которого отличаются друг от друга больше всего. Мое решение: [pre2]import math kol= 0 a = [] b = [] # находим простые делители for i in range (2, 404322//2): k = 2 for d in range (2,int(math.sqrt(i))+1): if i % d == 0: k += 1 break if k == 2: a.append(i) print(a) # находим числа, у которых только два делителя отличных от 1 и самого числа for i in range (353738, 404322): k = 2 for d in range (2,i // 2 + 1): if i % d == 0: k += 1 if k == 4: b.append(i) print(b) # среди чисел, у которых два делителя отличных от 1 и самого числа, находим те, у которых два различных делителя kol = 0 for i in b: k = 0 for d in a: if i % d == 0: k += 1 if k == 2: kol += 1 print(kol)[/pre2] Данный код находит количество чисел. С ответом у меня не сходится. Где может быть ошибка в коде?

Ответов - 2

Поляков: Давайте вы сначала оформите код, используя тэг [ pre2 ]...[ /pre2 ], а потом будем разбираться.

nikolya: nikolya пишет: 353738, а надо "356738". Неправильно переписал диапазон. Ошибка от невнимательности(((((. Прошу прощения.



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