Предмет: Информатика, автор: gromanuk37

Напишите пожалуйста код

Приложения:

jerrymynigga: не понимаю условия
angryfukse: Всё предельно ясно. Есть строка. Тебе нужно определить для каждой буквы в этой строке, какая она по счёту в русском алфавите. Это и будет ее индекс. Каждую букву в строке меняешь на ближайший ненулевой делитель её индекса.
angryfukse: Единственное, что непонятно, почему строка "дом" конвертировалась в строку "225", а не в "522". Если индексировать алфавит начиная с 1, то д имеет индекс 5. Соответственно ближайший ненулевой и отличный от единицы делитель это 5. Аналогично и с последующими буквами
angryfukse: Если начинать с нуля, то там тоже 225 не выходит
angryfukse: Ну и еще вопрос - что понимать под словом "ближайший". Ближайший к чему - к нулю или индексу

Ответы

Автор ответа: angryfukse
0

Язык: Python

Символ # обозначает - закомментированные строки. Это на случай если "ближайший" делитель - максимальный.

def Delimiter(num):

   min_divider : int = num

   #max_divider : int = 1

   for i in range(num - 1, 1, -1):

       if (num % i == 0):

           #if (max_divider < i):

             #  max_divider = i

           if (min_divider > i):

               min_divider = i

    #return str(max_divider)  

    return str(min_divider)

alphabet = ['а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я']

string = input('Введите строку: ')

new_string = list(string)

for i in new_string:

   new_string[new_string.index(i)] = Delimiter(alphabet.index(i)  +  1)

last_string = ''.join(new_string)

string = last_string

print(string)

Приложения:
Похожие вопросы