# Задачи ## За решаване ### Задача 1 През 1837 година, [Чарлз Бабидж](https://en.wikipedia.org/wiki/Charles_Babbage) пита въпроса: .quote What is the smallest positive integer whose square ends in the digits 269,696? Според него това число е 99736 (чиито квадрат е 9947269696). Напишете програма, която **намира** най-малкото число, отговарящо на въпроса. |Вход|Изход| |---|---| | |25264| ### Задача 2 От входа получавате 8 цели положителни числа. Трябва да изкарате най-голямото общо делимо между всички тези числа. |Вход|Изход| |---|---| |8 8 8 8 8 8 8 8|8| |2 6 14 8 20 4 12 14|2| |318 577 200 235 72 333 947 37|1| ### Задача 3 Получавате цяло положително число. В него трябва да замените всички срещания на най-срещаната цифра с 0. Ако има няколко такива цифри, трябва да замените само най голямата от тях. |Вход|Изход| |---|---| |1|0| |5|0| |10|0| |15|10| |99|0| |9988|88| |138783|130703| |535735737|535035030| ### Задача 4 Получавате една редица от 15 цели числа и след това втора редица с 5 цели уникални числа. Трябва да върнете броя срещания в първата редица на всяко от числата във втората редица. |Вход|Изход| |---|---| |1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 5|1 1 1 1 1| |1 2 2 1 1 2 0 2 1 1 0 2 2 1 1
-9 0 1 2 300|0 2 7 6 0| ### Задача 5 От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение: ![](https://syndamia.com/teaching/upp-2025/week06/img/rectangle_and_line.png) изкарайте дали точката е в защрихованата област или не. Областта **не** включва правата и правоъгълника! Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица. |Вход|Изход| |---|---| |0 0|Outside| |-1 0|Outside| |-1.1 0|Inside| |-2 1|Inside| |-4 2|Outside| |-3.9 1.9|Inside| |-4 -1|Outside| |-3.9 -0.9|Inside| |1 2|Outside| |0.9 2|Outside| |1 1.9|Outside| |0.9 1.9|Outside| |0.8 1.9|Inside| ### Задача 6 От входа получавате цяло положително число. Трябва да върнете дали то е [щастливо](https://en.wikipedia.org/wiki/Happy_number). Нека да вземем нашето число и да го заменим със сумата на всички свои цифри, повдигнати на квадрат. Оригиналното число е щастливо, ако след краен брой прилагания на тази операция, получим числото 1. Когато число не е щастливо, влизаме в безкрайния цикъл 4, 16, 37, 58, 89, 145, 42, 20, 4, 16, ... Това е единствения възможен цикъл в който нещастно число може да попадне. |Вход|Изход| |---|---| |1|Happy| |7|Happy| |14|Not happy| |28|Happy| |318|Not happy| |319|Happy| |320|Happy| |888|Happy| ### Задача 7 От входа получавате 6 реални числа. Пресметнете съответните 6 [префиксни суми](https://en.wikipedia.org/wiki/Prefix_sum) и ги изкарайте. Това са сумите на всички числа до сега. Тоест, префиксната сума на второто число е сумата на първото и второто число. Префиксата сума на третото число е сумата на първото, второто и третото число. |Вход|Изход| |---|---| |1 2 3 4 5 6|1 3 6 10 15 21| |30.86 967.214 85 515.27 -453 -37.79|30.86 998.074 1083.07 1598.34 1145.34 1107.55| ### Задача 8 От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение: ![](https://syndamia.com/teaching/upp-2025/week06/img/two_circles.png) изкарайте дали точката е в защрихованата област или не. Областта **не** включва самите окръжности! Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица. |Вход|Изход| |---|---| |1 1|Outside| |-1.5 -2.5|Outside| |0 2|Outside| |0 2.1|Inside| |-1 2|Inside| |4 0|Outside| |3.9 0|Inside| |3 0|Inside| |3 -1|Outside| |3 -2|Inside| |2.586 -2.5356|Inside| |2.5356 -2.586|Outside| |-1.54 1.584|Inside| |-1.55 1.55|Outside| ### Задача 9 От входа получавате 10 цели числа. Трябва да върнете дали сред тях същестуват три числа (на различни позиции), чиято сума е равна на 0. |Вход|Изход| |---|---| |1 -2 3 -4 5 -6 7 -8 9 -10|Exists| |2 4 45 6 -10 5 -45 8 23 11|Exists| |1 4 45 6 -11 4 -45 8 23 11|Doesn't exist| ### Задача 10 От входа получавате четири трицифрени цели неотрицателн числа. Трябва да върнете най-голямото възможно цяло число, което се получава след "слепване" на тези числа. *Не е нужно да използвате сортиращ алгоритъм!* |Вход|Изход| |---|---| |100 200 300 400|400300200100| |552 285 732 937|937732552285| |492 352 289 382|492382352289| ### Задача 11 От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение: ![](https://syndamia.com/teaching/upp-2025/week06/img/triangle_and_circle.png) Областта **не** включва правата и правоъгълника! Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица. |Вход|Изход| |---|---| |-1 1|Inside| |-1 -1|Outside| |-2 -1|Inside| |2 2|Inside| |3 2|Outside| |2.9 2|Inside| |0 1.5|Inside| |1 1.5|Outside| |2 1.5|Inside| |2 1.1|Outside| |-3.354 -1.831|Inside| |1.864 1.356|Inside| |1.73 1.287|Outside| ## За самоподготовка ### Задача 12 От входа получавате цяло неотрицателно число. Трябва да върнете дали е [число на "сума-произведение"](https://en.wikipedia.org/wiki/Sum-product_number). С други думи, дали е равно на сумата на цифрите си, умножено по умнежнието на цифрите. |Вход|Изход| |---|---| |0|Sum-product number| |2|Not a sum-product number| |22|Not a sum-product number| |135|Sum-product number| |1337|Not a sum-product number| ### Задача 13 От входа получавате цяло положително число. Трябва да върнете всички негови делители. |Вход|Изход| |---|---| |5|1 5| |15|1 3 5| |16|1 2 4 8 16| |137|1 137| |864|1 2 3 4 6 8 9 12 16 18 24 27 32 36 48 54 72 96 108 144 216 288 432 864| ### Задача 14 От входа получавате две цели неотрицателни числа. Трябва да намерите [тетрацията](https://en.wikipedia.org/wiki/Tetration) на първото числото на степен второто число. Както нормалното степенуване е повторено умножение, така тетрацията е повторено степенуване. Число на тетрация "степен" озачава, че числото се повдига на нормална степен себе си, тетрация степен на брой пъти. Тетрацията расте бързо, използвайте най-големия възможен тип. |Вход|Изход| |---|---| |2 4|65536| |3 1|3| |3 2|27| |3 3|7625597484987| |8 2|16777216| ### Задача 15 От входа получавате 8 цели неотрицателни числа. Трябва да върнете най-малкото общо кратно на всеки две съседни числа. Най-малко общо кратно е най-малкото число, което се дели без остатък на двете числа. |Вход|Изход| |---|---| |1 2 3 4 5 6 7 8|2 6 12 20 30 42 56| |4 6 9 389 13 13 2 8|12 18 3501 5057 13 26 8| ### Задача 16 От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение: ![](https://syndamia.com/teaching/upp-2025/week06/img/rectangles_and_circle.png) изкарайте дали точката е в защрихованата област или не. Зачитайте, че всяка сива права отбелязва брой единици разстояние от нулата. |Вход|Изход| |---|---| |0 0|Outside| |-1 -1|Outside| |-0.5 -0.5|Inside| |0 0.75|Inside| |2 0|Outside| |1.5 0|Outside| |1.5 0.1|Inside| |1 0.5|Outside| ### Задача 17 От входа получавате две естествени числа, `a` и `b`. Трябва да върнете дали `a` е [унитарен делител](https://en.wikipedia.org/wiki/Unitary_divisor) на `b`. Това е изпълнено, когато `a` е делител на `b` и най-големия общ делител на `a` и `b / a` е 1. |Вход|Изход| |---|---| |5 60|Unitary divisor| |6 60|Not a unitary divisor| |5 10|Unitary divisor| |4 12|Unitary divisor| |6 12|Not a unitary divisor| ### Задача 18 От входа получавате 10 реални числа. Трябва да върнете най-голямата възможна сума, получена чрез събиране на колкото и дълга **последователна** редица от елементи. |Вход|Изход| |---|---| |1 2 3 4 5 6 7 8 9 10|55| |-2 -1 0 1 2 3 4 5 6 7|28| |-2 1 -3 4 -1 2 1 -5 4 -9|6| |-4 13.3 5.5 7 -6.5 10 0 -15 2.1 3|29.3|