`is_prime(n)` distrayants ?

Je trouve « distrayant » cette implèm de is_prime :

from itertools import count


def gen_primes():
    for i in count(1):
        if is_prime(i):
            yield i


def is_prime(i):
    if i < 3:
        return i == 2
    for d in gen_primes():
        if d ** 2 > i:
            return True
        if i % d == 0:
            return False

C’est le côté « Bah ça peut pas marcher : is_prime a besoin de gen_primes mais gen_primes a besoin de is_prime. » suivi de « OMG ça marche en fait ! » que je trouve distrayant ici.

je me demande s’il existe d’autres implémentation « distrayantes », soit de is_prime, soit d’un autre algo d’ailleurs.

À vos clavier :smiley:

4 « J'aime »

C’est bien vu :slight_smile: