Сто задач по программированию
Задачи 16 - 30
Перед решением задач полезно познакомиться со справочными данными
- Л. Кэрролл в своем дневнике писал, что он тщетно трудился, пытаясь найти хотя бы три прямоугольных треугольника равной площади, у которых длины сторон были бы выражены натуральными числами. Составьте программу для решения этой задачи, если известно, что такие треугольники существуют. Напишите программу, которая находит все прямоугольные треугольники (длины стороны выражаются натуральными числами), площадь которых не превышает данного числа
.
- Найдите наименьшее натуральное число, которое можно представить в виде суммы кубов двух натуральных чисел не единственным способом.
- Напишите программу, которая определяет, сколько можно купить быков, коров и телят, платя за быка 10 рублей, за корову - 5 рублей, а за теленка - 50 копеек, если на 100 рублей надо купить 100 голов скота?
- Коту снится, что его окружили тринадцать мышей. Двенадцать из них серые, а одна белая. С какой мыши ему начать счет, если он съедает каждую тринадцатую, а белую мышь должен съесть последней? Обобщить задачу на случай
мышей, и счет ведется до
мыши.
- Аня нарвала яблок и поровну раздала своим сестрам Оле, Маше и Тане, а что осталось, съела. Оля свои яблоки поделила между тремя сестрами, а что осталось, съела. То же самое сделали Маша и Таня. Сколько яблок оказалось у каждой сестры? Составьте программу для решения задачи о дележе в общем случае, то есть для дележа яблок между
лицами (
— входное данное). Дележ осуществляется в соответствии с теми же правилами, что и дележ между четырьмя лицами. Укажите число лиц (максимальное число лиц определите при помощи константы), а количество яблок у каждого из них сохраните в массиве.
- Найдите наибольший общий делитель двух натуральных чисел. Реализуйте два варианта: рекурсивный и без рекурсии. Обобщите задачу для
натуральных чисел.
- Определите, являются ли данные два натуральных числа взаимно простыми. Составьте функцию, которая проверяла бы, являются ли три числа взаимно простыми.
- Найдите наименьшее общее кратное данных двух натуральных чисел. Исходные данные — последовательность натуральных чисел. В конце последовательности — нуль. Составьте программу для нахождения наименьшего общего кратного всех членов ряда. Кратным ряда считается наименьшее натуральное число, которое делится без остатка на все члены ряда.
- Составьте функцию, значением которой было бы наименьшее общее кратное всех натуральных чисел от 1 до
включительно (
— параметр функции).
- Составьте программу для нахождения максимального вмещающегося в память числа (если такого ограничения нет, то наибольшего числа, которое меньше 1 000 000 000), которое без остатка делится на как можно большее количество следующих друг за другом натуральных чисел.
- Дан прямоугольник, длины сторон которого выражаются натуральными числами
и
. Из одной вершины прямоугольника проводится прямая, которая составляет угол в 45 градусов со сторонами прямоугольника. Дойдя до стороны прямоугольника, прямая, не пересекая ее, изламывается под углом 90 градусов. Дойдя до другой стороны, она снова изламывается под углом 90 градусов и так далее, пока не дойдет до какой-либо из вершин прямоугольника. Определите, из скольких отрезков будет состоят такая ломаная.
- Найдите все делители данного натурального числа, а также их количество и сумму.
- Определить, является ли данное натуральное число простым. Дано простое число. Составьте функцию, которая будет находить следующее за ним простое число (то есть ближайшее простое число, большее данного,— параметр функции). Например, если дано число 11, то значение функции должно быть 13, если дано 23, то значение 29. Если входное данное не является простым числом, то есть не выполняется условие, то значение функции считайте равным нулю.
- Найдите первые
чисел Мерсенна.
- Найдите каноническое разложение данного натурального числа. Составьте программу для проверки, можно ли заданное натуральное число представить в виде:
а) произведения двух простых чисел; б) произведения трех простых чисел; в) квадрата какого-либо простого числа; г) куба какого-либо простого числа.