Нов български университет

Програма Информатика
INF295 Програмиране за напреднали I

Задача A. Хипотеза на Голдбах

Всяко цяло четно число може да се представи като сума на две прости числа. Напишете програма a.exe, която да проверява тази хипотеза.

Стандартен вход
Всеки пример се задава с едно четно число m (3 < m < 104 ). Входът съдържа няколко примера, като на последния ред съдържа числото 0 за край на входа.

Стандартен изход
За всеки пример на изхода се записват 2 числа на един ред, разделени с интервал - по-малкото и по-голямото намерени  прости числа.

Примерен вход
12
134
2018
0

Изход - решение с данни от примерния вход
5 7
3 131
1009 1009



Задача В. Редица

Дадена е крайна редица {ai, i = 1,.., N } от неотрицателни цели числа. Разстояние между два елемента ai и aj на редицата (0 < i, j < N + 1) се нарича числото | i - j |. Напишете програма b.exe за намиране на най-голямото разстояние между два равни елемента на дадена редица. Ако в редицата няма равни елементи, разстоянието се счита за 0.

Стандартен вход
На първия ред от всеки пример е дадена дължината N на редицата (1 < N < 20000). На следващите редове са дадени N числа (по-малки от 10000) - членовете на редицата. Входът съдържа много примери и завършва с числото 0 на нов ред.

Стандартен изход
За всеки пример на изхода се записва по едно число - дължината на най-големия намерен интервал.

Примерен вход
3
1 2 1
10
1 1 1 2 2 2 2 2 2 1
6
1 2 3 4 5 6
0

Изход - решение с данни от примерния вход
2
9
0















Задача C: Сини петна

Дадени са N окръжности в равнината (0 < N < 100), никои две от които не се допират (т.е. или се пресичат или не се пресичат). Знаем координатите на центровете им и радиусите им. Нека координатната равнина е бяла и оцветим всички кръгове, заградени от тези окръжности в синьо. Тогава в равнината ще се появят едно или няколко сини петна, които нямат общи точки (не се пресичат). Да се напише програма c.exe за намиране на броя на тези петна.

Входен файл: spots.inp
Първият ред на файла съдържа число N - брой окръжности. Следващите N реда съдържат по 3 числа (десетични дроби) - координати на център и радиус на окръжност. Файлът съдържа много примери. Числото 0 за брой окръжности означава край на входния файл.

Изходен файл: spots.out
За всеки пример програмата извежда едно цяло число - броя на сините петна.

Примерен входен файл
2
1 1 2
10 10 2
3
0 0 5
1 1 2
2 2 4
0

Изходен файл - решение с данни от примерния входен файл
2
1


Задача D: Сума на цифри

Някои цели числа се по-интересни от други цели числа. Например нулата, простите числа, съвършенните числа и т.н. Може ли за всяко число да се измисли свойство, което да го прави "интересно"? Сигурно. Ето едно свойство, което прави някои "обикновени" числа "интересни": в две различни бройни системи сумата от цифрите на числото е една и съща. Колко са тези числа? Напишете програма d.exe, която да пресмята броя на числата в зададен затворен интервал с една и съща сума на цифрите в двоична и десетична бройна система.

Стандартен вход
За всеки пример е зададен интервала, където ще броим "интересни" числа. Числата от входа са по-малки от 106. Входът съдържа много примери и завършва с
0 0.

Стандартен изход
За всеки пример на изхода се записва по едно число - броя на намерените числа с описаното свойство.

Примерен вход
20 30
2 15
20 21
0 0

Изход - решение с данни от примерния вход
2
0
2