Задачи (17 - 32)
17. Алгоритм Евклида для вычисления наибольшего общего делителя (НОД) двух натуральных чисел формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока одно из них не станет равно нулю; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм. Какой цикл тут нужно использовать?
18. Напишите программу, использующую модифицированный алгоритм Евклида: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока этот остаток не станет равен нулю; тогда второе число и есть НОД.
19. Добавьте в решение двух предыдущих задач вычисление количества шагов цикла. Заполните таблицу (в строки «шаги-1» и «шаги-2» записывается количество шагов для двух версий алгоритма Евклида).
20. Напишите программу, которая вводит с клавиатуры 10 чисел и вычисляет их сумму и произведение.
21. Напишите программу, которая вводит с клавиатуры числа до тех пор, пока не будет введено число 0. В конце работы программы на экран выводится сумма и произведение введённых чисел.
22. Напишите программу, которая вводит с клавиатуры числа до тех пор, пока не будет введено число 0. В конце работы программы на экран выводятся минимальное и максимальное из введённых чисел.
23. Напишите программу, которая вводит с клавиатуры натуральное число N и определяет его факториал, т. е. произведение натуральных чисел от 1 до N: N! = 1•2•3-...-N. Что будет, если ввести большое значение N(например, 20)?
24. Напишите программу, которая вводит натуральные числа А и N и вычисляет AN.
25. Напишите программу, которая выводит на экран все цифры числа, начиная с первой.
26. Ряд чисел Фибоначчи задаётся следующим образом: первые два числа равны 1 (F1 = F2 = 1), а каждое следующее равно сумме двух предыдущих: Fn = Fn-i+Fn-2. Напишите программу, которая вводит натуральное число N и выводит на экран первые N чисел Фибоначчи.
27. Напишите программу, которая вводит натуральные числа а и b и выводит все простые числа в диапазоне от а до b.
28. Совершенным называется число, равное сумме всех своих делителей, меньших его самого (например, число 6 = 1+2+3). Напишите программу, которая вводит натуральное число N и определяет, является ли число N совершенным.
29. Напишите программу, которая вводит натуральное число N и находит все совершенные числа в диапазоне от 1 до N.
30. В магазине продаётся мастика в ящиках по 15, 17, 21 кг. Как купить ровно 185 кг мастики, не вскрывая ящики? Сколькими способами можно это сделать?
*31. Ввести натуральное число N и вывести значение числа 1/N, выделив период дроби. Например: 1/2 = 0,5 или 1/7 = 0,(142857).
*32. В телевикторине участнику предлагают выбрать один из трёх закрытых чёрных ящиков, причём известно, что в одном из них приз, а в двух других пусто. После этого ведущий открывает один пустой ящик (но не тот, который выбрал участник) и предлагает заново сделать выбор, но уже между двумя оставшимися ящиками. Используя псевдослучайные числа, выполните моделирование 1000 раундов этой игры и определите, как следует поступить участнику, чтобы с большей вероятностью получить приз: выбрать тот же ящик, что и в начале игры, или другой.
Следующая страница §58. Циклические алгоритмы