Никакой новой теории. Вспомним только алгоритм Евклида:
def gcd(a, b): if b == 0: return a else: return gcd(b, a % b)
Даны два натуральных числа. Вычислите их наибольший общий делитель при помощи алгоритма Евклида, реализованного без использования рекурсии.
Ввод | Вывод |
---|---|
12 |
3 |
Гипотеза Гольдбаха (недоказанная до сих пор) утверждает, что любое четное число (кроме 2) можно представить в виде суммы двух простых чисел. Дано натуральное четное число, большее 2, выведите два простых числа, дающих в сумме данное.
Ввод | Вывод |
---|---|
4 |
2 2 |
Дано натуральное число N>1. Выведите все его простые натуральные делители с учетом кратности. Алгоритм должен иметь сложность O(sqrt(N)).
Ввод | Вывод |
---|---|
132 |
2 2 3 11 |
2 |
2 |
Даны две дроби a/b и c/d (числа a и c — целые, b и d — натуральные). Вычислите их сумму и запишите ее в виде смешанной дроби x y/z (число x целое, числа y и z натуральные, дробь y/z — правильная несократимая).
Программа получает на вход четыре числа a, b, c, d и должна вывести ответ в виде смешанной дроби. Если целая часть смешанной дроби равна 0, ее выводить не надо. Если дробная часть смешанной дроби равна 0, ее выводить не надо. Если число отрицательное, то перед ним выводится знак “-”. Следуйте формату вывода, приведенному в примерах.
Ввод | Вывод |
---|---|
1 2 1 3 |
5/6 |
1 2 2 3 |
1 1/6 |
3 2 2 4 |
2 |
2 1 -4 2 |
0 |
-1 2 -1 3 |
-5/6 |
-1 2 -2 3 |
-1 1/6 |
3 10 -1 10 |
1/5 |
На клетчатой бумаге нарисовали отрезок из точки с координатами (a,b) в точку с координатами (c,d). Через сколько клеток проходит этот отрезок (считается, что отрезок проходит через клетку, если он проходит через ее внутренность, если же он проходит только через вершину или по границе клетки, считается, что он не проходит через клетку).
Программа получает на вход четыре числа: a, b, c, d.
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|---|
0 0 6 4 |
8 |
3 3 -3 3 |
0 |
Дано натуральное число N. Определите, можно ли его представить в виде суммы двух точных натуральных квадратов.
Если число N представимо в виде суммы двух натуральных квадратов,
выведите два натуральных числа a и b таких, что a2+b2=N,
иначе выведите строку Impossible
.
Решение должно иметь сложность O(sqrt(N)).
Ввод | Вывод |
---|---|
20 |
2 4 |
21 |
Impossible |
Теорема Лагранжа утверждает, что любое натуральное число можно представить в виде суммы не более, чем четырех точных квадратов. По данному числy N выведите от 1 до 4 натуральных чисел, квадраты которых в сумме дают значение N.
Ввод | Вывод |
---|---|
7 |
2 1 1 1 |
Даны два натуральных числа a и b. Найдите их наибольший общий делитель d и два таких целых числа x и y, что ax+by=d. Программа должна вывести числа d, x, y.
Ввод | Вывод |
---|---|
3 |
1 -3 2 |
Даны натуральные числа a, b, c. Если уравнение ax+by=c имеет
решения в целых числах, то выберите то решение, в котором число x имеет
наименьшее неотрицательное значение и выведите это решение (два числа x и y через один пробел).
Если решения не существует, то выведите слово Impossible
.
Сложность алгоритма должна быть равна сложности алгоритма Евклида + константа.
Ввод | Вывод |
---|---|
1 2 3 |
1 1 |
10 6 8 |
2 -2 |
Пусть дано числа a и n. Обратным элементом к числу a в кольце вычетов по модулю n называется такое число b, что ab === 1 (mod n), то есть ab дает остаток 1 при делении на n.
Даны числа a и n. Выведите значение обратного элемента к числу a в кольце вычетов по модулю n. Если обратного элемента не существует, выведите число 0.
Ввод | Вывод |
---|---|
2 3 |
2 |
5 25 |
0 |
Количество всех натуральных делителей натурального числа n обозначим T(n). Сумма всех натуральных делителей числа n обозначим S(n).
Дано натуральное n ≤ 109. Вычислите T(n) и S(n).
Сложность алгоритма должна быть O(sqrt(n)).
Ввод | Вывод |
---|---|
2 |
2 3 |
6 |
4 12 |
На региональном этапе Всероссийской олимпиаде школьников по информатике 23 января 2011 года предлагалась задача, условие которой в варианте на 30 баллов из 100 звучит так.
Дано натуральное число n ≤ 1000. Подсчитайте количество таких пар чисел (a, b), что:
Выведите количество таких пар.
Ввод | Вывод |
---|---|
10 |
4 |
Решите предыдущую задачу в ограничениях n ≤ 108. Такое решение оценивалось в 60 баллов из 100.
Два числа n и m называются дружественными, если сумма делителей числа n (включая 1, но исключая само n) равна числу m и наоборот. Например, 220 и 284 – дружественные числа.
По данному числу k выведите все пары дружественных чисел, каждое из которых не превосходит k. Пары необходимо выводить по одной в строке, разделяя числа в паре пробелом. Каждая пара должна быть выведена только один раз (перестановка чисел новую пару не дает).
Ввод | Вывод |
---|---|
300 |
220 284 |
Имеется неограниченное количество монет в 1, 2, 5, 10 рублей. Определите, сколькими способами можно выдать сдачу в \(n\) рублей. Например, 5 рублей можно выдать четырьмя способами: 5=2+2+1=2+1+1+1=1+1+1+1+1.
Программа получает на вход число \(n\), не превышающее 100.
Ввод | Вывод |
---|---|
2 |
2 |
5 |
4 |
Решите предыдущую задачу в ограничениях \(n\le 10^6\). Время на тест — 1 секунда. Сложность алгоритма должна быть \(O(n)\).
Тесты к этой задаче закрытые.
Дано натуральное число \(R\le 10^5\). Определите количество целочисленных точек, находящихся внутри и на границе круга радиуса \(R\) с центром в начале координат.
Ограничение по времени на решение — 1 секунда, сложность алгоритма должна быть \(O(R)\).
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|---|
2 |
13 |
У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции:
>A
).
>B
).
A>
).
B>
).
A>B
).
B>A
).
Команда переливания из одного сосуда в другой приводят к тому, что либо первый сосуд полностью опустошается, либо второй сосуд полность наполняется.
Программа получает на вход три натуральных числа A, B, N, не превосходящих 104
Вам необходимо вывести алгоритм действий Водолея, который позволяет получить в точности N литров
в одном из сосудов, если же такого алгоритма не существует, то программа должна вывести текст Impossible
.
Количество операций в алгоритме не должно превышать 105. Гарантируется, что если задача имеет решение, то есть решение, которое содержит не более, чем 105 операций.
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|---|
3 5 1 |
>A |
3 5 100 |
Impossible |