from __future__ import print_function, division
def somme(A, B):
C = []
for i in range(4):
Ai = A[i]
Bi = B[i]
row = [Ai[j]+Bi[j] for j in range(4)]
C.append(row)
return C
X = [[56, 39, 3, 41],
[23, 78, 11, 62],
[61, 26, 65, 51],
[80, 98, 9, 68]]
Y = [[51, 52, 53, 15],
[ 1, 71, 46, 31],
[99, 7, 92, 12],
[15, 43, 36, 51]]
somme(X, Y)
On vérifie en utilisant sympy que le calcul est correct:
from sympy import Matrix
Mx = Matrix(X)
My = Matrix(Y)
Mx + My
def produit(A, B):
C = []
for i in range(4):
row = []
for j in range(4):
row.append(sum(A[i][k]*B[k][j] for k in range(4)))
C.append(row)
return C
produit(X,Y)
On vérifie en utilisant sympy que ce calcul est correct:
Mx * My
from math import sqrt
def est_premier(n):
if n == 0 or n == 1:
return False
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return False
return True
On vérifie que la fonction est_premier
fonctionne bien:
for i in range(100):
if est_premier(i):
print(i, end=', ')
D'abord, on remarque qu'il n'existe pas de quadruplet de nombre premiers $p$, $p+2$, $p+4$, $p+6$, car l'un d'eux doit être divisible par trois (en effet, leurs valeurs modulo 3 sont $p$, $p+2$, $p+1$). Comme 3 est le seul nombre premier divisible par trois, il faudrait que le quadruplet contienne le nombre 3. Or un tel quadruplet n'existe pas.
def triplets_nombre_premier(n):
L = []
p = 3
while len(L) < n:
if est_premier(p) and est_premier(p+6):
if est_premier(p+2):
L.append((p, p+2, p+6))
elif est_premier(p+4):
L.append((p, p+4, p+6))
p += 2
return L
triplets_nombre_premier(10)
def triplets_pythagore(n):
L = []
for c in range(1, n+1):
for b in range(1, c+1):
for a in range(1, b+1):
if a**2+b**2 == c**2:
L.append((a,b,c))
return L
triplets_pythagore(30)