Во всех нижеследующих заданиях требуется написать программу для решения поставленной задачи на языке Haskell.
Задача 2.6. Напишите функцию для нахождения n-го члена последовательности, заданной следующей рекуррентной формулой:
Следует иметь в виду, что прямое программирование данной формулы «как есть» приводит к крайне неэффективной программе.
Задача 2.7. Совершенным числом называется натуральное число, равное сумме всех своих делителей, включая единицу, но исключая само это число. Например, число 28 — совершенное, поскольку 28 = 1+ 2 + 4 + 7 + + 14. Напишите функцию для нахождения первых п совершенных чисел.
Задача 2.8. Близнецами называется пара натуральных чисел, каждое из которых равно сумме делителей другого числа. Например, числа 220 и 284 — близнецы (проверьте!). Напишите программу для нахождения первых п пар близнецов.
Задача 2.9. Напишите функцию, которая в заданном списке строк находит самую длинную строку.
Задача 2.10. Напишите функцию, строящую по заданному списку строк новый список, в котором содержатся те же строки, что и в исходном списке, по каждая вторая строка выброшена из списка (т.е. в списке останутся только строки с нечетными номерами), а в каждой из оставшихся строк каждый второй символ также выброшен. Например, если аргументом программы является список строк.
[" Близнецами", «называется», «пара», «натуральных», «чисел» ] то результатом работы должен быть список строк.
[" Бинцм", «пр», «чел» ].
Задача 2.11. Заданный числовой список разбейте на подсписки из возрастающих подпоследовательностей максимальной длины рядом стоящих чисел. Например, если исходный список состоял из чисел [ 2, 7, 10, 8, 3, 4, 9, 1, 2, 0, 8, 3, 2, 5], то результатом работы программы должен быть следующий список списков: [[2, 7, 10], [8], [3, 4,.
9], [1, 2], [0, 8], [3], [2, 5]].
Задача 2.12. Для заданного вещественного числа х найдите сумму чис;
уй лового ряда с общим членом и =-. Суммирование производите до тех я!+1.
пор, пока очередной член ряда не окажется по абсолютной величине меньше заданного числа.
Задача 2.13. В списке содержатся неотрицательные целые числа. Требуется преобразовать этот список таким образом, чтобы все последовательности рядом стоящих строго положительных чисел были преобразованы в суммы этих чисел, а все нули остались бы на своих местах. Например, список [0, 0, 1, 2, 3, 4, 0, 10, 5, 2, 0, 3] должен быть преобразован в [0, 0, 10, 0, 17, 0, 3].