Генераторы списков

Задачи этого раздела нужно решать только с помощью генераторов списков [expr for x in list if condition]

  1. Дан список чисел, верните новый список, где все элементы возведены в квадрат.
  2. Дан список чисел, верните новый список, в котором из исходного списка удалены все четные элементы.
  3. Дан список строк, верните новый список, в котором все строки превращены в целые числа (используйте функцию int), но нужно проигнорировать те строки, которые не являеются числами. Например, ['1', 'a', '42'] должно превратиться в [1, 42]. Используйте метод isdigit() для строк, чтобы проверить, что строка состоит только из цифр.
  4. Дан список, верните новый список, в котором каждый элемент повторен дважды. Например, [1, 2, 'x'] -> [1, 1, 2, 2, 'x', 'x']
  5. Решето эратосфена (простой, но не самый эффективный способ).
    1. Напишите функцию, которая по числу \(k\) и списку возвращает новый список, в котором удалены все элементы, делящиеся на \(k\).
    2. Дано \(n\). Создайте список ints чисел от 2 до \(n\) (оберните range в list). Пока список не пуст, доставайте из него первый элемент \(p\). Сохраните этот элемент в список primes. Вызывайте предыдущую функцию: ints = filter_k(ints, p). Верните список primes и проверьте, что это получились простые числа. Для реализации алгоритма вам понадобится цикл while.
  6. Дано число \(n\), создайте список из всех его положительных делителей. Для этого переберите все числа от 1 до \(n\).
    1. Эффективней перебирать числа от 1 до \(\sqrt{n}\), при этом, если получился делитель \(d\), то \(\frac{n}{d}\) это тоже делитель. Найдите список всех делителей этим способом.
  7. Проверьте число на простоту