Автор | Сообщение |
|
Отправлено: 10.12.20 14:05. Заголовок: Задание 25, №86. Не сходится ответ
Решили так: count = 0 for i in range(4986, 32599 + 1): k = [] for d in range(2, round(i ** 0.5)): if i % d == 0: k = k + [d, i // d] if len(k) > 2: break if len(k) == 2: count += i print(count) Выводит 124521820, но в ответах 124478618, где ошибкa?
|
|
|
Ответов - 4
[только новые]
|
|
|
| Администратор
|
Сообщение: 2221
|
|
Отправлено: 10.12.20 14:21. Заголовок: tansu пишет: Выводит..
tansu пишет: цитата: | Выводит 124521820, но в ответах 124478618, где ошибкa |
|
Думаю, что вы неверно обрабатываете числа, которые являются полными квадратами. Их квадратный корень учитывается как два делителя.
|
|
|
|
Отправлено: 10.12.20 21:26. Заголовок: Проверил. Не учитыва..
Проверил. Не учитывается. В этом цикле в питоне. for d in range(2, round(i ** 0.5)): round(i ** 0.5) не считается. Ошибка где-то в другом месте.
|
|
|
|
| Администратор
|
Сообщение: 2226
|
|
Отправлено: 10.12.20 21:56. Заголовок: tansu пишет: Не учит..
tansu пишет: Вы правы. А для чисел, которые являются полными квадратами, его нужно учитывать.
|
|
|
|
Отправлено: 11.12.20 05:30. Заголовок: Спасибо. Всё получил..
Спасибо. Всё получилось.
|
|
|
|