Автор | Сообщение |
|
Отправлено: 20.01.21 19:46. Заголовок: 2850
Задача: (№ 2850) Рассматриваются целые числа, принадлежащих числовому отрезку [356738; 404321], которые представляют собой произведение двух различных простых делителей. В ответе запишите количество таких чисел и такое из них, простые делители которого отличаются друг от друга больше всего. Мое решение: 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) Данный код находит количество чисел. С ответом у меня не сходится. Где может быть ошибка в коде?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| Администратор
|
Сообщение: 2336
|
|
Отправлено: 20.01.21 21:10. Заголовок: Давайте вы сначала о..
Давайте вы сначала оформите код, используя тэг [ pre2 ]...[ /pre2 ], а потом будем разбираться.
|
|
|
|
Отправлено: 21.01.21 08:18. Заголовок: Нашел ошибку сам.
nikolya пишет: , а надо "356738". Неправильно переписал диапазон. Ошибка от невнимательности(((((. Прошу прощения.
|
|
|
|