Найти в списке кратные элементы

Ввести с помощью генератора случайных чисел целочисленную матрицу размерности n×m (заданы константами). Найти элемент кратный заданному числу. Вывести на экран найденный элемент, его индексы, степень кратности. Я создал матрицу, но не могу найти кратный элемент. Ошибка:

TypeError: unsupported operand type(s) for %: 'list' and 'int'.

import random
n = int(input("Введите значение n: "))
m = int(input("Введите значение m: "))
array = []
q4=[]
bbb=[]
def print_matrix(array):
    for i in range(len(array)):
        for j in range(len(array[i])):
            print(array[i][j], end = ' ')
        print()
for i in range(n):
    array.append([0]*m)
for i in range(n):
    for j in range(m):
        x = random.randint(-1,5)
        array[i][j] = x
print("Матрица:")
print_matrix(array)
q5=int(input("Введите заданное число: "))
def indx(a = [], val = 0, occurrence_pos = False):
    if not occurrence_pos:
        for k in range(len(a)):
            for j in range(len(a[k])):
                if a[k][j] == val:
                    return (k, j)
    else:
        return [(k, j) for k in range(len(a)) for j in range(len(a[k])) if a[k][j] == val]
index = indx(array, q5, True)
print(array)
print(type(array))
print("Индекс элемента: ", index)
for i in array:
    if i%q5==0:
        bbb.append(i)
print(bbb)

Однако, в другом файле по этому принципу все работает


a =[1,2,3,4,5,6,7,8,9,10]
b=[]
print(a)
q=int(input())
for i in a:
    if i%q==0:
        b.append(i)
print(b)

Ответы (1 шт):

Автор решения: passant

Или я чего не понимаю, или у вас все как-то очень сложно:

import random
n = int(input("Введите значение n: "))
m = int(input("Введите значение m: "))
array = []
for i in range(n):
    row=[]
    for j in range(m):
        row.append(random.randint(-1,5))
    array.append(row)  
print("Матрица:",array)
q5=int(input("Введите заданное число: "))
for i in range(n):
    for j in range(m):
        if   array[i][j]%q5==0:
            print(array[i][j],i,j,int(array[i][j]/q5))

Результат:
Введите значение n: 6
Введите значение m: 8
Матрица: [[4, -1, 4, 3, -1, 2, 0, 3], [4, 1, 4, 0, 2, 4, -1, 1], [1, 4, 5, 4, 
3, 1, 5, 1], [1, -1, 5, 5, 3, 4, 4, 1], [2, 3, 3, 4, -1, 1, 4, 0], [5, -1, 2, 
1, -1, 2, 1, 0]]
Введите заданное число: 2
4 0 0 2
4 0 2 2
2 0 5 1
0 0 6 0
4 1 0 2
4 1 2 2
0 1 3 0
2 1 4 1
4 1 5 2
4 2 1 2
4 2 3 2
4 3 5 2
4 3 6 2
2 4 0 1
4 4 3 2
4 4 6 2
0 4 7 0
2 5 2 1
2 5 5 1
0 5 7 0

И да, разумеется, 0 считается кратным любому числу. Если это не так, то последнее условие заменить на

array[i][j]!=0 and array[i][j]%q5==0:

Дополнение. Поскольку ответ, как оказалось, труден для понимания ТС, привожу его суперупрощенную версию, отвечая на вопрос "если я вбил в q5 10, то в матрице он должен найти 30 или 100, например". Надеюсь, теперь понятно, что первый ответ не изменяет матрицу, а делает именно то, что вы описали:

array= [[40, -10, 4, 30],[20,3,100,5],[10,20,30,3],[3,3,20,3]]
q5=int(input("Введите заданное число: "))
for i in range(len(array)):
    for j in range(len(array[0])):
        if   array[i][j]%q5==0:
            print(array[i][j],int(array[i][j]/q5))

Результат:

    Введите заданное число: 10
40 4
-10 -1
30 3
20 2
100 10
10 1
20 2
30 3
20 2
→ Ссылка