Найти - Пользователи
Полная версия: Нубский вопрос по массивам
Начало » Центр помощи » Нубский вопрос по массивам
1 2 3
Viskas
Ребят, дико стыдно, но только только начал изучать python. Делаю задачки для закрепления теории.
Сам вопрос такой: ‘Вводится размер одномерного массива A(N) и его элементы. Удалить из исходного массива все элементы, являющиеся простыми числами. Результат вывести на экран.’

Не могу сформулировать и написать условие выборки всех составных чисел массива

# -*- coding: cp1251 -*-

n = int(input('Введите длину массива: ')) # Вводим длину массива
massiv = [] # Создаем массив

for i in range(n):
x = input('Введите элементы массива: ' ) # Вводим элементы массива
massiv.append(x)
print('%30s' % 'Заданный массив:', massiv) # Вывод заданного массива
Дальше в заданном массиве мне надо сделать выборку, вот тут то я и туплю.
Если кому будет не сложно, помогите пожалуйста )
doza_and
def prime(i):
.....
print [i for i in massiv if not prime(i)]
но это несколько сомнительно по производительности и это не удаление из исходного массива а создание нового массива.
Удалять из исходного - несколько сложновато и менее эффективно наверное.
Viskas
doza_and
Удалять из исходного - несколько сложновато и менее эффективно наверное.
в принципе да, легче сделать выборку всех составных чисел в массиве и добавить их в новый массив ,а старый удалить.
Viskas
doza_and
Код:

def prime(i):
…..
print
Я правильно понял, что в функции описываю все целые элементы массива ,а потом вывожу все составные?
doza_and
Эта функция должна давать True для простых чисел. и False в противном случае. Можно сделать проверку делимости на все числа меньше sqrt(n) и накапливать уже известные протсые числа в множестве. Ну как вариант.
Viskas
doza_and
Эта функция должна давать True для простых чисел. и False  в противном случае. Можно сделать проверку делимости на все числа меньше sqrt(n) и накапливать уже известные протсые числа в множестве. Ну как вариант.
Да, в этом направлении я и думал. Спасибо
Viskas
doza_and
print
-*- 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:', )
что то выдает пустой массив (
sp3
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)])
слишком много вычислений,код будет неправильный
Viskas
Спасибо большое sp3!!
Я вообще оказывается не в ту степь ушел (хотя уже был близок к тому, что бы переписать функцию дли использования boolean)
Viskas
Ребят ,еще один глупый вопрос:
Как мне в двумерном массиве a(n*m) с индексами элементов (i, j) вывести только номера строк удовлетворяющих заданным условиям?
Уточню вопрос:
создаю двумерный массив a из n строк и m столбцов с индексами элементов i и j. Не могу понять как мне вывести, например, номер строки. Если использовать enumerate, то выводится и номер столбца (да и не то это - это скорее для надо для элементов).
Конкретизирую: строка n1 массива а, содержит данные(),
строка n2 массива a, содержит данные(),
………………..
надо print(номер строки ,т.е
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB