# Задачи - УПП, Седмица 6, 06.11.2025
'define expected-reading 10 min
'define created 01 November 2025
'define edited 05 November 2025
[$pagenav]
GitHub Classroom: [url https://classroom.github.com/a/JSB1UK_f]
## За решаване
### Задача 1
През 1837 година, [url https://en.wikipedia.org/wiki/Charles_Babbage Чарлз Бабидж] пита въпроса:
.quote
What is the smallest positive integer whose square ends in the digits 269,696?
Според него това число е 99736 (чиито квадрат е 9947269696).
Напишете програма, която =[намира]= най-малкото число, отговарящо на въпроса.
[$examples_bg]
|::||:25264:|
### Задача 2
От входа получавате 8 цели положителни числа.
Трябва да изкарате най-голямото общо делимо между всички тези числа.
[$examples_bg]
|: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.
Ако има няколко такива цифри, трябва да замените само най голямата от тях.
[$examples_bg]
|:1:||:0:|
|:5:||:0:|
|:10:||:0:|
|:15:||:10:|
|:99:||:0:|
|:9988:||:88:|
|:138783:||:130703:|
|:535735737:||:535035030:|
### Задача 4
Получавате една редица от 15 цели числа и след това втора редица с 5 цели уникални числа.
Трябва да върнете броя срещания в първата редица на всяко от числата във втората редица.
[$examples_bg]
|: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
От входа получавате две реални числа: координати на точка в равнината.
Спрямо следното изображение:
[image ./img/rectangle_and_line.png]
изкарайте дали точката е в защрихованата област или не.
Областта =[не]= включва правата и правоъгълника!
Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.
[$examples_bg]
|: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
От входа получавате цяло положително число.
Трябва да върнете дали то е [url https://en.wikipedia.org/wiki/Happy_number щастливо].
Нека да вземем нашето число и да го заменим със сумата на всички свои цифри, повдигнати на квадрат.
Оригиналното число е щастливо, ако след краен брой прилагания на тази операция, получим числото 1.
Когато число не е щастливо, влизаме в безкрайния цикъл 4, 16, 37, 58, 89, 145, 42, 20, 4, 16, ...
Това е единствения възможен цикъл в който нещастно число може да попадне.
[$examples_bg]
|:1:||:Happy:|
|:7:||:Happy:|
|:14:||:Not happy:|
|:28:||:Happy:|
|:318:||:Not happy:|
|:319:||:Happy:|
|:320:||:Happy:|
|:888:||:Happy:|
### Задача 7
От входа получавате 6 реални числа.
Пресметнете съответните 6 [url https://en.wikipedia.org/wiki/Prefix_sum префиксни суми] и ги изкарайте.
Това са сумите на всички числа до сега.
Тоест, префиксната сума на второто число е сумата на първото и второто число.
Префиксата сума на третото число е сумата на първото, второто и третото число.
[$examples_bg]
|: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
От входа получавате две реални числа: координати на точка в равнината.
Спрямо следното изображение:
[image ./img/two_circles.png]
изкарайте дали точката е в защрихованата област или не.
Областта =[не]= включва самите окръжности!
Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.
[$examples_bg]
|: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.
[$examples_bg]
|: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
От входа получавате четири трицифрени цели неотрицателн числа.
Трябва да върнете най-голямото възможно цяло число, което се получава след "слепване" на тези числа.
*[Не е нужно да използвате сортиращ алгоритъм!]*
[$examples_bg]
|:100 200 300 400:||:400300200100:|
|:552 285 732 937:||:937732552285:|
|:492 352 289 382:||:492382352289:|
### Задача 11
От входа получавате две реални числа: координати на точка в равнината.
Спрямо следното изображение:
[image ./img/triangle_and_circle.png]
Областта =[не]= включва правата и правоъгълника!
Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.
[$examples_bg]
|:-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
От входа получавате цяло неотрицателно число.
Трябва да върнете дали е [url https://en.wikipedia.org/wiki/Sum-product_number число на "сума-произведение"].
С други думи, дали е равно на сумата на цифрите си, умножено по умнежнието на цифрите.
[$examples_bg]
|: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
От входа получавате цяло положително число.
Трябва да върнете всички негови делители.
[$examples_bg]
|: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
От входа получавате две цели неотрицателни числа.
Трябва да намерите [url https://en.wikipedia.org/wiki/Tetration тетрацията] на първото числото на степен второто число.
Както нормалното степенуване е повторено умножение, така тетрацията е повторено степенуване.
Число на тетрация "степен" озачава, че числото се повдига на нормална степен себе си, тетрация степен на брой пъти.
Тетрацията расте бързо, използвайте най-големия възможен тип.
[$examples_bg]
|:2 4:||:65536:|
|:3 1:||:3:|
|:3 2:||:27:|
|:3 3:||:7625597484987:|
|:8 2:||:16777216:|
### Задача 15
От входа получавате 8 цели неотрицателни числа.
Трябва да върнете най-малкото общо кратно на всеки две съседни числа.
Най-малко общо кратно е най-малкото число, което се дели без остатък на двете числа.
[$examples_bg]
|: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
От входа получавате две реални числа: координати на точка в равнината.
Спрямо следното изображение:
[image ./img/rectangles_and_circle.png]
изкарайте дали точката е в защрихованата област или не.
Зачитайте, че всяка сива права отбелязва брой единици разстояние от нулата.
[$examples_bg]
|: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]` е [url https://en.wikipedia.org/wiki/Unitary_divisor унитарен делител] на `[b]`.
Това е изпълнено, когато `[a]` е делител на `[b]` и най-големия общ делител на `[a]` и `[b / a]` е 1.
[$examples_bg]
|: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 реални числа.
Трябва да върнете най-голямата възможна сума, получена чрез събиране на колкото и дълга =[последователна]= редица от елементи.
[$examples_bg]
|: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:|