#!/usr/bin/env python # -*- coding: UTF-8 -*- """ Liste de nombres premiers strictement inférieurs à un entier donné """ def primelist(n): """ Version avec crible d'Eratosthenes """ li = range(n+1) # création d'une liste d'entiers jusque n li[1] = 0 # 0 (déjà à 0) et 1 ne sont pas premiers ncur = 2 # prochain nombre à tester while ncur ** 2 <= n: # tant que ncur est inférieur à sqrt(n) li[ncur*2::ncur] = [0] * (n // ncur - 1) # éliminer (mettre à 0) # les multiples de ncur # ncur suivant (il ne doit pas être déjà mis à zéro) ncur += 1 while not li[ncur]: ncur += 1 return [a for a in li if a != 0] # renvoie une liste avec les élements non nuls p=primelist(1000) print(p)