Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 4

Проект Эйлера, 23 задание

18.12.2021, 11:00. Показов 1242. Ответов 2

Студворк — интернет-сервис помощи студентам
Вроде все ошибки исправил, а правильного решения так и не получил (3921523)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def List_of_Divisors(a):  # Вернуть список делителей без самого числа
    return (L := [b for b in range(1, int(a ** 0.5) + 1) if not a % b]) + [a / b for b in L if b != 1]
 
 
N = 28123
Redundant_Num = [a for a in range(12, N+1) if sum(List_of_Divisors(a)) > a]  # Список избыточных чисел
Sum = (1 + N) / 2  # Сумма чисел от 1 до 28123
 
S = []
i = 0
for n in Redundant_Num: 
    for m in Redundant_Num[i:]:
        if m + n <= N:
            S.append(m+n)  # Список избыточных сумм
    i += 1
S = sum(set(S))  # Удаление повторяющихся чисел (избыточных сумм)
print(Sum-S)
Алгоритм:

1) Составить список избыточных чисел

2) Получить сумму чисел от 1 до 28123, внутри которой и будет необходимая сумма неизбыточных сумм
(Неизбыточная сумма - число, которое нельзя представить, как сумму 2-х избыточных чисел)

3) Получить список избыточных сумм

4) Избавиться от повторений
(Повторения избыточных сумм - повторяющееся число можно представить как сумму избыточных чисел несколькими способами)

5) Найти сумму избыточных сумм

6) Из общей суммы вычесть сумму избыточных сумм, получив сумму неизбыточных сумм


В чём я ошибаюсь? Я даже не знаю, синтаксическая ли это ошибка, либо сам алгоритм неверен.

Добавлено через 15 минут
Цитата Сообщение от mentosdope Посмотреть сообщение
[a / b for b in L if b != 1]
Здесь можно короче: [... L[1:]]

Цитата Сообщение от mentosdope Посмотреть сообщение
Sum = (1 + N) / 2
Здесь на N надо домножить, скопировал криво

Добавлено через 8 минут
Всем спасибо, ахах, сам решил.

Я не учёл, что для чисел, квадратный корень которых целое число, я записываю один делить дважды

Python
1
[... L[1:] if a/b != b]  # если кому интересно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2021, 11:00
Ответы с готовыми решениями:

Проект Эйлера
Я только недавно начал учить питон(это мой первый язык программирования), я пробовал свои силы в проекте Эйлера, первую задачу более менее...

Проект Эйлера
Вопрос касательно первой задачи, я ее решил двумя путями: list=; n=1; while n&lt;1000: if n%3==0 or n%5==0: ...

Проект Эйлера задача 15
Начиная в левом верхнем углу сетки 2×2 и имея возможность двигаться только вниз или вправо, существует ровно 6 маршрутов до правого нижнего...

2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38193 / 21126 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
18.12.2021, 12:58
Цитата Сообщение от mentosdope Посмотреть сообщение
В чём я ошибаюсь? Я даже не знаю, синтаксическая ли это ошибка, либо сам алгоритм неверен.
- очень странное замечание. Программа с синтаксической ошибкой даже не запустится...
0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 4
18.12.2021, 15:44  [ТС]
Это не странное замечание, а ошибочное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2021, 15:44
Помогаю со студенческими работами здесь

Проект Эйлера задача 18
Нужно начиная в вершине треугольника и перемещаясь вниз на смежные числа,так максимальная сумма до основания составляет 23. 3 7 4 2 4...

Проект Эйлера. Задача 5
День добрый! Решаю пятую задачу Проекта Эйлера: &quot;2520 - самое маленькое число, которое делится без остатка на все числа от 1 до...

Проект Эйлера, прыгающие числа
Прыгучие числа Если, читая число слева направо, ни одна цифра не превышает цифру справа от нее, то такое число называется...

Проект Эйлера задача 18, оптимизация
Решил задачу Эйлера # № 18 через brute force, теперь хочу её уменьшить рекурсией но не могу понять как это можно сделать! Только затронул...

Проект Эйлера: Наибольшее произведение в последовательности
Добрый вечер всем, решал задачу из проекта Эйлера, вот условие: https://euler.jakumo.org/problems/view/8.html Так как число, слишком...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru