Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет_Лаба4_ФП_Алексеева

.doc
Скачиваний:
8
Добавлен:
19.01.2023
Размер:
3.73 Mб
Скачать

Уфимский государственный авиационный технический университет

ОТЧЕТ по лабораторной работе №4

по дисциплине:

«Функциональное программирование»

на тему:

«Текстовые файлы.

Факторизация, простые числа, разные задачи.»

Выполнил: бакалавр гр. ПРО-223

Алексеева А.В.

Проверил: Фридлянд Александр Михайлович

Содержание

Содержание 2

1 задание 3

2 задание 5

3 задание 7

52 задача 7

56 задача 8

Выводы 9

1 Цель работы (Вариант 3)

Выполнить задания в соответствии с вариантом №3, изучив факторизацию, работу с текстовыми файлами, простыми числами с помощью интерпретатора Hugs языка программирования Haskell; реализовав различные программы с сайта http://projecteuler.net/problems.

1. Строки исходного файла, выровненные справа.

2. (21) Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).

If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.

3. (200) We shall define a sqube to be a number of the form, p2q3, where p and q are distinct primes.

For example, 200 = 5223 or 120072949 = 232613.

The first five squbes are 72, 108, 200, 392, and 500.

Interestingly, 200 is also the first number for which you cannot change any single digit to make a prime; we shall call such numbers, prime-proof. The next prime-proof sqube which contains the contiguous sub-string "200" is 1992008.

Find the 200th prime-proof sqube containing the contiguous sub-string "200".

2 Результат выполнения работы

1 задание

Написать функцию, которая читает входной текстовой файл и выводит в выходной файл строки исходного файла, выровненные справа.

Рисунок 1 Исходный код программы в текстовом редакторе

Рисунок 2 Содержание входного текстового файла «Input.txt» задания №1

Рисунок 3 Содержание выходного текстового файла «Output.txt» с результатом выполнения задания №1

2 задание

(21) Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).

If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.

Перевод:

Пусть d (n) определяется как сумма собственных делителей n (чисел меньше n, которые делятся на n без остатка).

Если d (a) = b и d (b) = a, где a ≠ b, то a и b - дружная пара, и каждое из a и b называется дружескими числами.

Например, правильные делители 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 и 110; следовательно, d (220) = 284. Собственные делители числа 284 - 1, 2, 4, 71 и 142; так что d (284) = 220.

Оцените сумму всех полюбившихся чисел меньше 10000.

Решение:

Рисунок 4 Исходный код

Рисунок 5 Результат

Проверка ответа:

3 задание

52 задача

(52) It can be seen that the number, 125874, and its double, 251748, contain exactly the same digits, but in a different order.

Find the smallest positive integer, x, such that 2x, 3x, 4x, 5x, and 6x, contain the same digits.

Перевод:

Видно, что число 125874 и его двойное число 251748 содержат точно такие же цифры, но в другом порядке.

Найдите наименьшее положительное целое число x , такое, чтобы 2 x , 3 x , 4 x , 5 x и 6 x содержали одинаковые цифры.

Решение:

Рисунок 6 Исходный код

Рисунок 7 Результат

Проверка ответа:

56 задача

(56)A googol (10100) is a massive number: one followed by one-hundred zeros; 100100 is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.

Considering natural numbers of the form, ab, where a, b < 100, what is the maximum digital sum?

Перевод:

Гугол (10^100) - это огромное число: единица с сотней нулей; 100^100 почти невообразимо велико: единица, за которой следуют двести нулей. Несмотря на их размер, сумма цифр в каждом номере составляет всего 1.

Рассматривая натуральные числа вида a^b, где a, b <100, какова максимальная цифровая сумма?

Решение:

Рисунок 8 Исходный код

Рисунок 9 Результат

Проверка:

Выводы

Выполнила задания лабораторной, соответствующие моему варианту.

Уфа – 2020