def cribleErathostene(n):
liste = list(range(2,n+1))
i = 0
#on prend le premier élément de la liste
tete = liste[i]
while tete*tete <= n:
k = 2
multiple = k*tete
#on enlève de la liste les multiples de tete
while multiple <= n:
if multiple in liste:
liste.remove(multiple)
k = k + 1
multiple = k*tete
#on avance d'un rang dans la liste
i = i + 1
tete = liste[i]
return liste
Il s'agit de construire une matrice carrée de nombres entiers d'ordre impair contenant une spirale d'entiers
Copier et compléter le code suivant:
def ulam(n):
''' n est impair'''
mat = np.zeros((n,n))
#En partant du centre de la matrice
#construire une spirale 1,2,...n
return mat
Parcourir la matrice et en utilisant le crible d'Eratosthene remplacer chaque entier par 0 si le nombre est premier 1 sinon
Puis afficher l'image