# Задача-1:
# Дан список, заполненный произвольными целыми числами, получите новый список,
# элементами которого будут квадратные корни элементов исходного списка,
# но только если результаты извлечения корня не имеют десятичной части и
# если такой корень вообще можно извлечь. Вывести результат
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4]   Результат: [3, 5, 2]

import math, random
print("Задача 1")
list1=[i**3 for i in range(-20,20,3)]
list2=[]
for el in list1:
    if el>=0 and int(math.sqrt(el))**2==el:
        list2.append(int(math.sqrt(el)))
print('Исходный список:',list1)
print('Результат:',list2)


# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013.
# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года.
# Склонением пренебречь (2000 года, 2010 года)
print("\nЗадача 2")
days=("первое","второе","третье","четвертое","пятое","шестое","седьмое",
"восьмое","девятое","десятое","одиннадцатое","двенадцатое","тринадцатое",
"четырнадцатое","пятнадцатое","шестнадцатое","семнадцатое","восемнадцатое",
"девятнадцатое","двадцатое","двадцать первое","двадцать второе",
"двадцать третье","двадцать четвертое","двадцать пятое",
"двадцать шестое","двадцать седьмое","двадцать восьмое",
"двадцать девятое","тридцатое","тридцать первое")
months=("января","февраля","марта","апреля","мая","июня","июля","августа",
"сентября","октября","ноября","декабря")
d=input("Введите дату в формате dd.mm.yyyy")
print(days[int(d[0:2])-1], months[int(d[3:5])-1], d[6:],"года")

# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами
# в диапазоне от -100 до 100. В списке должно быть n - элементов.
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random
# выведите созданный список
print("\nЗадача 3")
n=int(input("Введите количество элементов в списке"))
list3=[]
i=0
while i<n:
    list3.append(random.randint(-100,100))
    i+=1
print(list3)


# Задача-4: Дан список, заполненный произвольными целыми числами.
# Получите новый список, элементами которого будут:
# а) неповторяющиеся элементы исходного списка:
# например, lst = [1, 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 2, 4, 5, 6]
# б) элементы исходного списка, которые не имеют повторений:
# например, lst = [1 , 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 4, 6]
# выведите результаты
print("\nЗадача 4")
n=int(input("Введите количество элементов в списке"))
list4=list5=list6=[]
i=0
while i<n:
    list4.append(random.randint(-10,10))
    i+=1
print('Исходный список:',list4)
list5=list(set(list4))
print('Неповторяющиеся элементы исходного списка:',list5)

list6=list4
list6.sort()
L_falses = []

for i in range(0, len(list6)-1):
    if list6[i] == list6[i+1]:
        L_falses.append(list6[i])

b=False
while not b:
    b=True
    for i in L_falses:
        if i in list6:
            list6.remove(i)
            b=False
print('Элементы исходного списка, которые не имеют повторений:',list6)