Функции 1. Натуральное число называется простым, если оно делится только на 1 и на само себя. Написать функцию, которая определяет, является ли ее параметр простым числом и возвращает логическое значение (при поиске делителей нужно перебирать числа до минимально возможной границы; если делитель найден, функция должна немедленно возвращать false). Далее, нужно воспользоваться этой функцией в функции main и распечатать все простые числа от 1 до 1000. 2. Натуральное число называется совершенным, если его делители, включая единицу (но не само число) в сумме дают это число. Например, 6 — совершенное число, т. к. 6 = 1 + 2 + 3. Написать функцию, которая определяет, является ли ее параметр совершенным числом. Функция должна возвращать логическое значение. Далее, нужно воспользоваться этой функцией в функции main и распечатать все совершенные числа от 1 до 1000. 3. Пусть дано число n. Будем заменять его на число n/2, если n четно, и на 3n+1, если n нечетно. Существует гипотеза (не доказанная и не опровергнутая до сих пор), что с какого бы числа мы не начали, в результате цепочки таких замен мы всегда можем прийти к числу 1. Ваша функция должна принимать n в качестве параметра и возвращать число замен, приводящих к 1. 4. Написать функцию, вычисляющую функцию Эйлера ϕ(n). Eсли n раскладывается на простые множители как n = pk11 pk22 . . . pkl l , то 1 1 1 · 1− ··· 1 − ϕ(n) = n 1 − p1 p2 pl Примеры: Input: 3 Output: 2 Input: 24 Output: 8 Input: 33 Output: 20 Замечание. Воспользоваться функцией, написанной в задаче 1. 5. Написать функцию, возвращающую НОД двух чисел (вычисленный по алгоритму Евклида). 6. Используя задачу 5, написать функцию, принимающую два целых параметра — числитель и знаменатель вводимого числа. Функция должна напечатать соответствующую несократимую дробь. 7. Используя задачу 5, написать функцию, проверяющую, являются ли данные три числа взаимно простыми. 8*. Драконова последовательность из нулей и единиц определяется следующим образом. Берется полоска бумаги, складывается пополам несколько раз и разворачивается таким образом, чтобы 1) средний сгиб всегда был направлен вниз и 2) последовательность сгибов при большем числе складываний начиналась с последовательности для меньшего числа складываний. Теперь последовательность сгибов кодируется так: если сгиб направлен вниз, то он кодируется нулем, вверх — единицей. В силу п. 2) последовательности для разного числа сгибов можно объединить в одну бесконечную последовательность. Написать функцию, по номеру сгиба выдающую его код (оказывается, способ получения этой последовательности вместе с условиями 1) и 2) определяет эту последовательность однозначно). Пример: начало этой последовательности выглядит так: 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 ... 9*. Изменить функцию задачи 4 так, чтобы она вычисляла также коэффициенты линейного разложения НОД (т. е. если в качестве чисел заданы a и b и НОД(a,b)=c, то функция должна находить такие числа k и l, что ka+lb=c). Эти числа нужно записывать в глобальные переменные с1 и с2. 10*. Пусть имеется три правила замены букв a → abcc, b → cbac, c → bcac. Мы строим строки из букв a, b, c следующим образом: первая строка состоит из одной буквы a, а далее каждая следующая строка получается из предыдущей при помощи замены каждой буквы по соответствующему правилу. Оказывается, что каждая следующая строка начинается с предыдущей, и потому их можно объединить в одну бесконечную строку. Написать функцию, по номеру позиции в этой строке выдающую букву, стоящую на этой позиции.