Курсовая (Pacal)

Ю.В.18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
08.05.2007

решить задачи на Turbo Pascal

1)

В определенных криптографических алгоритмах используются большие простые числа. Но проверить, является ли большое число простым, не так-то просто.

Существуют проверки на простоту, основанные на рандомизации, обладающие высокой степенью точности и не требующие больших затрат. Примером таких проверок может служить тест ферма. Пусть a- это случайное число между 2 и n-1, где n-это число, чью простоту мы проверяем. Тогда n вероятно простое, если выполняется следующее условие: a^n mod n=a

Если число проходит тест ферма несколько раз, то оно является простым с большой вероятностью.

К сожалению, у этого метода есть и минусы. Определенные составные числа (не простые) проходят тест Ферма для любых чисел меньше их. Такие числа называются числами Кармайкла (Carmichael).

Напишите программу, которая будет проверять, является ли заданное целое число числом Кармайкла.

Входные данные:

Входные данные состоят из последовательности строк, каждая из которых содержит небольшое положительное число n (2

Выходные данные:

Для каждого введенного числа выведите, является ли оно число Кармайкла.

2)

Дублетом называются два слова, которые отличаются ровно в одной букве (например, “booster” и “rooster”, или “rooster” и “roaster”, или “roaster” и “roasted”).

Вам задается словарь длиной не более 25143 слов, состоящих из строчных букв, причем длина каждого слова не превышает 16 букв. Далее вам задается некоторое число пар слов. Для каждой пары слов найдите последовательность слов, имеющую наименьшую длину, причем первое слово последовательности должно совпадать с первым словом из заданной пары, а последнее слово последовательности – со вторым словом из пыры. Каждая пара соседних слов последовательности должна быть дублетом. Например, если вам задана пара “booster” и “roasted”, возможным решением является “booster”, ”rooster”, ”roaster”, ”roasted”, при условии, что эти слова присутствуют в словаре.

Входные данные:

Файл входных данных содержит словарь, за которым следует некоторое число пар слов. Словарь состоит из произвольного числа слов, по одному на строку, и завершается пустой строкой. Далее идут пары слов; каждая из строка содержит пару слов, разделенных пробелом.

Выходные данные:

Для каждой введенной пары напечатайте набор строк, начинающийся: первого слова и заканчивающийся последним. Каждая пара соседних строк должна быть дублетом.

Если существует несколько вариантов минимальных решений, то подойдет любое. Если решения не существует, выведите строку “No solution.” Между блоками должна быть пустая строка.

Заявки фрилансеров