Форум сайта python.su
Ребят, дико стыдно, но только только начал изучать python. Делаю задачки для закрепления теории.
Сам вопрос такой: ‘Вводится размер одномерного массива A(N) и его элементы. Удалить из исходного массива все элементы, являющиеся простыми числами. Результат вывести на экран.’
Не могу сформулировать и написать условие выборки всех составных чисел массива
# -*- coding: cp1251 -*-
n = int(input('Введите длину массива: ')) # Вводим длину массива
massiv = [] # Создаем массив
for i in range(n):
x = input('Введите элементы массива: ' ) # Вводим элементы массива
massiv.append(x)
print('%30s' % 'Заданный массив:', massiv) # Вывод заданного массива
Офлайн
def prime(i):
.....
print [i for i in massiv if not prime(i)]
Офлайн
doza_andв принципе да, легче сделать выборку всех составных чисел в массиве и добавить их в новый массив ,а старый удалить.
Удалять из исходного - несколько сложновато и менее эффективно наверное.
Офлайн
doza_andЯ правильно понял, что в функции описываю все целые элементы массива ,а потом вывожу все составные?
Код:
def prime(i):
…..
Офлайн
Эта функция должна давать True для простых чисел. и False в противном случае. Можно сделать проверку делимости на все числа меньше sqrt(n) и накапливать уже известные протсые числа в множестве. Ну как вариант.
Офлайн
doza_andДа, в этом направлении я и думал. Спасибо
Эта функция должна давать True для простых чисел. и False в противном случае. Можно сделать проверку делимости на все числа меньше sqrt(n) и накапливать уже известные протсые числа в множестве. Ну как вариант.
Офлайн
doza_andчто то выдает пустой массив (
-*- coding: cp1251 -*-
n = int(input('Введите длину массива: ')) # Вводим длину массива
massiv = # Создаем массив
for i in range(n):
x = input('Введите элементы массива: ‘ ) # Вводим элементы массива
massiv.append(x)
print(’%30s' % ‘Заданный массив:’, massiv) # Вывод заданного массива
def prime(i):
prime =
prime = 0
for i in range(0, n):
if prime != 0:
for j in range(i + prime, n, prime):
prime = 0
return
print('sost:', )
Отредактировано (Ноя. 16, 2011 07:17:14)
Офлайн
massiv = list(range(10))
print massiv
def prime(i):
if i < 2:
return False
for x in range(2, i):
if not i%x:
return False
return True
print('sost:', [i for i in massiv if not prime(i)])
print('prost:', [i for i in massiv if prime(i)])
Офлайн
Спасибо большое sp3!!
Я вообще оказывается не в ту степь ушел (хотя уже был близок к тому, что бы переписать функцию дли использования boolean)
Офлайн
Ребят ,еще один глупый вопрос:
Как мне в двумерном массиве a(n*m) с индексами элементов (i, j) вывести только номера строк удовлетворяющих заданным условиям?
Уточню вопрос:
создаю двумерный массив a из n строк и m столбцов с индексами элементов i и j. Не могу понять как мне вывести, например, номер строки. Если использовать enumerate, то выводится и номер столбца (да и не то это - это скорее для надо для элементов).
Конкретизирую: строка n1 массива а, содержит данные(),
строка n2 массива a, содержит данные(),
………………..
надо print(номер строки ,т.е
Отредактировано (Ноя. 21, 2011 13:36:34)
Офлайн