В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
0Snezhana0
0Snezhana0
28.04.2022 01:02 •  Информатика

Решите через ! напишите программу, которая реализует алгоритм разложения числа на простые ммножител, через массив.

Показать ответ
Ответ:
Заходим в PascalABC.NET и читаем в Справке:

function Find<T>(self: array of T; p: T->boolean): T; extensionmethod;
        Выполняет поиск первого элемента в массиве, удовлетворяющего предикату. Если не найден, возвращается нулевое значение соответствующего типа

Теперь переведем это на общепонятный язык.
Во-первых, не существует процедуры Find в языке PascalABC.NET.
Во-вторых, имеется функция Find, реализующая так называемое расширение, т.е. которая в тексте программы следует непосредственно за точкой.
Если имеется одномерный массив А, содержащий элементы некоторого типа, то конструкция A.Find(лямбда-выражение типа boolean) позволяет найти в массиве А первый в порядке следования элемент, подстановка значения которого в лямбда-выражение сделает это выражение истинным. Не знаете, что такое лямбда-выражение? Ну что же, я не могу в ответе рассказывать теорию "лямбд", да и вопрос был не об этом.
0,0(0 оценок)
Ответ:
romchik238
romchik238
08.07.2020 19:20
1. Определим наибольшее натуральное число, куб которого не превышает 2019. ∛2019 ≈ 12.6; отбрасывая дробную часть, получаем 12.
2. Выпишем набор натуральных чисел от 1 до 12 и их кубов:
1-1, 2-8, 3-27, 4-64, 5-125, 6-216, 7-343, 8-512, 9-729, 10-1000, 11-1331, 12-1728
3. Определим при "жадного" алгоритма набор кубов, дающий в сумме 2019 (из 2019 поочередно вычитаем.максимально возможные кубы):
2019-1728=291, 291-216=75, 75-64=11, 11-8=3, а 3 - это три раза по 1. Получаются кубы чисел 12, 6, 4, 2, 1, 1, 1 - всего СЕМЬ чисел.
4. Попытаемся улучшить найденное решение, отбрасывая те, которые найдут семь и более чисел.

Если взять число 11³=1331, то 2019-1331=688 и нужно составить его из кубов не более, чем 5 чисел.
688-512=176, 176-125=51, 51-27=24 ... и слишком длинно.
688-2×343=2, 2-1=1, 1-1=0 - 4 числа.
Улучшенное решение: 2019 = 11³+7³+7³+1³+1³

Лучшего решения нет.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота