Advertisement
Guest User

Solution à l'énigme

a guest
Dec 16th, 2015
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.96 KB | None | 0 0
  1. def primes(x):
  2.     """Calcule la liste des premiers inférieurs à x."""
  3.     P = []
  4.     for n in range(2,x):
  5.         isprime = True
  6.         for p in P:
  7.             if n % p == 0:
  8.                 isprime = False
  9.         if isprime:
  10.             P.append(n)
  11.     return(P)
  12.  
  13. def test(n, p):
  14.     """Teste si n mod p est premier."""
  15.     b = (n % p) in primes(p)
  16.     return(b)
  17.  
  18. def enigme(bmin, bmax, mods):
  19.     """Résoud l'énigme pour des valeurs entre bmin et bmax,
  20.       mods listant les dividendes dans le calcul des restes."""
  21.     sol = []
  22.     for n in range(bmin, bmax):
  23.         b = True
  24.         for p in mods:
  25.             b = b and test(n, p)
  26.         if b:
  27.             sol.append(n)
  28.     return(sol)
  29.  
  30. if __name__ == '__main__':
  31.     r = "La solution est {}. {} un nombre premier."
  32.     s = enigme(10, 1000, [5, 7, 11, 13, 17, 19, 23])[0]
  33.     if s in primes(s+1):
  34.         c = "C'est"
  35.     else:
  36.         c = "Ce n'est pas"
  37.     print(r.format(s, c))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement