MS1. Сумма всех нечетных чисел в диапазоне.

Задача

Необходимо суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры.

Тесты

Начало диапазона Конец диапазона Вывод
1 11 36
2 8 15
7 30 216

Решение

Задача(2)

A324. Делители одного числа, взаимно простые с другим

Задача

Даны целые числа [latex]p[/latex] и [latex]q[/latex]. Получить все делители числа [latex]q[/latex], взаимно простые с числом [latex]p[/latex].

Тесты

q p Все делители числа q, взаимно простые с числом p
40 15 1 2 4 8
87 3 1 29
Решение

Воспользуемся рекурсивной реализацией алгоритма Евклида. Пусть  m и  n  — не равные нулю целые неотрицательные числа, и пусть [latex]m\geq n[/latex]. Тогда, если [latex]n=0[/latex], [latex]GCD(n,m)=m[/latex], а если [latex]n\neq 0[/latex], то для чисел [latex]m,n[/latex] и [latex]k[/latex], где [latex]k[/latex], где [latex]k[/latex] — остаток от деления [latex]m[/latex] и [latex]n[/latex], выполняется равенство [latex]GCD(m,n)=GCD(n,k)[/latex].

Для нахождения делителей числа [latex]q[/latex] взаимно простых с [latex]p[/latex], программа проверяет остатки от деления [latex]q[/latex] на все числа [latex]i[/latex] от [latex]1[/latex] до [latex]q[/latex]. Если остаток равен нулю, то число [latex]i[/latex]  является делителем [latex]q[/latex]. Для каждого такого числа выполняется поиск наибольшего общего делителя (НОД — Greatest common divisor, GCD) [latex]i[/latex] и [latex]p[/latex] по алгоритму Евклида. [latex]1[/latex], то числа [latex]i[/latex] и [latex]p[/latex] взаимно простые.

КМ259(б). Квартеты из клеток

Задача

Назовем квартетом четверку клеток на клетчатой бумаге, центры которых лежат в вершинах прямоугольника со сторонами, параллельными линиям сетки. Какое наибольшее число квартетов, не имеющих общих клеток, можно разместить на прямоугольнике [latex]mn[/latex] клеток?

Входные данные

[latex]m, n[/latex]

Вывод

[latex]x[/latex] -кол-во квартетов.

Тесты

m n x
8 6 12
16 7 24
17 8 29.75
15 11 37

Код

 

Решение

Если [latex]m[/latex] и [latex]n[/latex] четные то на прямоугольнике [latex]mn[/latex] можно разместить [latex]\frac{mn}{4}[/latex] квартетов. Если [latex]m[/latex] четное, а [latex]n[/latex] нечетное (и наоборот), то можно разместить [latex]m(n-1)[/latex]. И наконец если [latex]m[/latex] и [latex]n[/latex] — нечетные, то нужно рассматривать два случая:

  1.  [latex]n = 4k + 1[/latex], в этом случае у нас формула такая: [latex]\frac{m(n-1)}{4}[/latex]
  2. Иначе, у нас другая формула: [latex]\frac{ \left(m(n-1)-2\right)}{4}[/latex]

Ссылка на решение в ideone.

e-olymp 906. Произведение цифр

Задача взята с сайта e-olimp

Условие

Задано трицифровое число. Определить произведение его цифр.

Входные данные

В единственной строке заданное трицифровое число.

Выходные данные

В единственной строке произведение цифр заданного числа.

Тесты

# Входные данные Результат
1 235 30
2 106 0
3 111 1

Описание решения

Для решения данной задачи необходимо задать переменную num, которая будет хранить в себе вводимые данные. Так как будут приниматься целочисленные данные, то используем тип данных int. Далее необходимо разбить исходное число на три цифры и перемножить их между собой.

Для разбиения на цифры воспользуемся формулой:

В данной формуле в первом множителе мы получаем первую цифру, во втором — вторую, и в третьем соответственно третью.