Задачи - УПП, Седмица 6, 06.11.2025

GitHub Classroom: https://classroom.github.com/a/JSB1UK_f

За решаване

Задача 1

През 1837 година, Чарлз Бабидж пита въпроса:

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 88
2 6 14 8 20 4 12 142
318 577 200 235 72 333 947 371

Задача 3

Получавате цяло положително число. В него трябва да замените всички срещания на най-срещаната цифра с 0.

Ако има няколко такива цифри, трябва да замените само най голямата от тях.

ВходИзход
10
50
100
1510
990
998888
138783130703
535735737535035030

Задача 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

От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение:

./img/rectangle_and_line.png

изкарайте дали точката е в защрихованата област или не. Областта не включва правата и правоъгълника!

Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.

ВходИзход
0 0Outside
-1 0Outside
-1.1 0Inside
-2 1Inside
-4 2Outside
-3.9 1.9Inside
-4 -1Outside
-3.9 -0.9Inside
1 2Outside
0.9 2Outside
1 1.9Outside
0.9 1.9Outside
0.8 1.9Inside

Задача 6

От входа получавате цяло положително число. Трябва да върнете дали то е щастливо.

Нека да вземем нашето число и да го заменим със сумата на всички свои цифри, повдигнати на квадрат. Оригиналното число е щастливо, ако след краен брой прилагания на тази операция, получим числото 1.

Когато число не е щастливо, влизаме в безкрайния цикъл 4, 16, 37, 58, 89, 145, 42, 20, 4, 16, ... Това е единствения възможен цикъл в който нещастно число може да попадне.

ВходИзход
1Happy
7Happy
14Not happy
28Happy
318Not happy
319Happy
320Happy
888Happy

Задача 7

От входа получавате 6 реални числа. Пресметнете съответните 6 префиксни суми и ги изкарайте.

Това са сумите на всички числа до сега. Тоест, префиксната сума на второто число е сумата на първото и второто число. Префиксата сума на третото число е сумата на първото, второто и третото число.

ВходИзход
1 2 3 4 5 61 3 6 10 15 21
30.86 967.214 85 515.27 -453 -37.7930.86 998.074 1083.07 1598.34 1145.34 1107.55

Задача 8

От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение:

./img/two_circles.png

изкарайте дали точката е в защрихованата област или не. Областта не включва самите окръжности!

Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.

ВходИзход
1 1Outside
-1.5 -2.5Outside
0 2Outside
0 2.1Inside
-1 2Inside
4 0Outside
3.9 0Inside
3 0Inside
3 -1Outside
3 -2Inside
2.586 -2.5356Inside
2.5356 -2.586Outside
-1.54 1.584Inside
-1.55 1.55Outside

Задача 9

От входа получавате 10 цели числа. Трябва да върнете дали сред тях същестуват три числа (на различни позиции), чиято сума е равна на 0.

ВходИзход
1 -2 3 -4 5 -6 7 -8 9 -10Exists
2 4 45 6 -10 5 -45 8 23 11Exists
1 4 45 6 -11 4 -45 8 23 11Doesn't exist

Задача 10

От входа получавате четири трицифрени цели неотрицателн числа. Трябва да върнете най-голямото възможно цяло число, което се получава след "слепване" на тези числа.

Не е нужно да използвате сортиращ алгоритъм!

ВходИзход
100 200 300 400400300200100
552 285 732 937937732552285
492 352 289 382492382352289

Задача 11

От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение:

./img/triangle_and_circle.png

Областта не включва правата и правоъгълника!

Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.

ВходИзход
-1 1Inside
-1 -1Outside
-2 -1Inside
2 2Inside
3 2Outside
2.9 2Inside
0 1.5Inside
1 1.5Outside
2 1.5Inside
2 1.1Outside
-3.354 -1.831Inside
1.864 1.356Inside
1.73 1.287Outside

За самоподготовка

Задача 12

От входа получавате цяло неотрицателно число. Трябва да върнете дали е число на "сума-произведение".

С други думи, дали е равно на сумата на цифрите си, умножено по умнежнието на цифрите.

ВходИзход
0Sum-product number
2Not a sum-product number
22Not a sum-product number
135Sum-product number
1337Not a sum-product number

Задача 13

От входа получавате цяло положително число. Трябва да върнете всички негови делители.

ВходИзход
51 5
151 3 5
161 2 4 8 16
1371 137
8641 2 3 4 6 8 9 12 16 18 24 27 32 36 48 54 72 96 108 144 216 288 432 864

Задача 14

От входа получавате две цели неотрицателни числа. Трябва да намерите тетрацията на първото числото на степен второто число.

Както нормалното степенуване е повторено умножение, така тетрацията е повторено степенуване. Число на тетрация "степен" озачава, че числото се повдига на нормална степен себе си, тетрация степен на брой пъти.

Тетрацията расте бързо, използвайте най-големия възможен тип.

ВходИзход
2 465536
3 13
3 227
3 37625597484987
8 216777216

Задача 15

От входа получавате 8 цели неотрицателни числа. Трябва да върнете най-малкото общо кратно на всеки две съседни числа.

Най-малко общо кратно е най-малкото число, което се дели без остатък на двете числа.

ВходИзход
1 2 3 4 5 6 7 82 6 12 20 30 42 56
4 6 9 389 13 13 2 812 18 3501 5057 13 26 8

Задача 16

От входа получавате две реални числа: координати на точка в равнината. Спрямо следното изображение:

./img/rectangles_and_circle.png

изкарайте дали точката е в защрихованата област или не.

Зачитайте, че всяка сива права отбелязва брой единици разстояние от нулата.

ВходИзход
0 0Outside
-1 -1Outside
-0.5 -0.5Inside
0 0.75Inside
2 0Outside
1.5 0Outside
1.5 0.1Inside
1 0.5Outside

Задача 17

От входа получавате две естествени числа, a и b. Трябва да върнете дали a е унитарен делител на b.

Това е изпълнено, когато a е делител на b и най-големия общ делител на a и b / a е 1.

ВходИзход
5 60Unitary divisor
6 60Not a unitary divisor
5 10Unitary divisor
4 12Unitary divisor
6 12Not a unitary divisor

Задача 18

От входа получавате 10 реални числа. Трябва да върнете най-голямата възможна сума, получена чрез събиране на колкото и дълга последователна редица от елементи.

ВходИзход
1 2 3 4 5 6 7 8 9 1055
-2 -1 0 1 2 3 4 5 6 728
-2 1 -3 4 -1 2 1 -5 4 -96
-4 13.3 5.5 7 -6.5 10 0 -15 2.1 329.3