Задачи за тренинг

Задача 10а.
Да се напише програма, която да отговаря на серия от различни типове заявки върху простите числа в интервала  [2, 108]. Заявките са дадени в следната таблица:

Тип заявка    Очакван отговор
A a b             Броя на простите числа в интервала [a, b].
B k               Най-малкият прост делител на k.
C k                1 - ако k е просто число и 0 в противен случай.
D k                1 - ако k обърнато на обратно (след премахването на водещите нули, ако има такива) е просто число и 0 - в противен случай.
E k                Най-близкото просто число до k. Ако две числа са еднакво близо до k, да се изведат и двете в нарастващ ред.
F k                 Броят на простите числа, по-малки от k.
quit               Прекратяване изпълнението на програмата.

Първият символ за всяка от командите е малка или главна латинска буква.

Пример:
A 3 7
B 176
C 95
D 11
Е 5
F 20
Е 6
quit   


Решение на примера:
3
2
0
1
5
8
5 7


Задача 10b.
Низът X е анаграма на низа Y, ако X може да бъде получен от разместването на символите на Y. Например всеки от низовете "baba", "abab", "aabb" и  "abba" е анаграма на "aabb", а низовете "aaab", "aab" и "aabc" не са анаграми на "aabb".
По зададено множество от низове S да се намери най-голямото му подмножество, в което няма два или повече низа, които да са анаграми един на друг.

Вход:
Всеки тестов пример е зададен на стандартния вход с един непразен ред, съдържащ низовете от S, разделени с един или няколко интервала. Всяко множество S съдържа между 1 и 50 низа, всеки от които е с дължина от 1 до  50.

Изход:
За всеки тестов пример на стандартния изход да се изведе по едно число – броя на низовете в исканото подмножество.

Пример:
abcd   abac   aabc      bacd

wlrb m    bhc arz    wk yhi   dqs dxr  mowfr        sjyb

ab               ba
z   


Решение на примера:
2
10
1
1