#!/usr/bin/env python3 class Question: def __init__(self,i=1, l=0, n=''): self.name=n self.level=l self.number=i def __enter__(self): print('\n' + (self.level*2)*' ' + f"-> {self.number}. : {self.name} -- Début") return self def __exit__(self, exc_type, exc_value, exc_traceback): print((self.level*2)*' ' + f"<- {self.number}. : {self.name} -- Fin\n") with Question(2): L = [True]*31 def modifier(L, p): if p in (0,1): L[p] = False else: for i in range(2*p,len(L), p): L[i] = False def premiers(n): L = [True]*(n+1) for i in range(n): if L[i]: modifier(L, i) return [i for i, premier in enumerate(L) if premier] print(premiers(823417)[-1]) print("Donc 823417 n'est pas premier.")