Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme Python et conjecture de Goldbach

    30 novembre 2023 à 12:57:59

    Bonjour,

    Je suis à la recherche d'un script qui me permettrait de compter le nombre de façons de la fonction de Goldbach pour des nombres > 2000000000.

    Actuellement j'ai ce code Python mais il ne marche pas pour les grands nombres.

    n = int(input(">")) def genprimes(n): limitn = n+1 not_prime = set() primes = [] for i in range(2, limitn): if i in not_prime: continue for f in range(i*2, limitn, i): not_prime.add(f) primes.append(i) return primes nos=0 primes = genprimes(n) for prime in primes: if n-prime in primes: nos += 1 print(str(int((nos/2)+0.5)))

    Pouvez-vous me proposer un code qui marche sur les grands nombres ? Merci.

    -
    Edité par Craw 30 novembre 2023 à 12:59:24

    • Partager sur Facebook
    • Partager sur Twitter

    Jeu du carré rouge modifié, quel niveau atteindrez-vous ? http://squared.go.yj.fr

      30 novembre 2023 à 19:04:10

      Pour moi, ta question n'est pas claire.

      Veux-tu savoir le nombre de façons différentes pour lesquelles un nombre pair est la somme de deux nombres premiers?

      J'utiliserais le crible d'Ératosthène de baseAu départ.

      -

      m = 10**10

      P = [i for i in range(m+1)]

      P[:2] = [0] * 2

      for n in range(2, int(m**0.5)+1):

          if P[n]:

              P[n*n::n] = [0] * ((m-n*n+n) // n)

      -

      Tu parcours la liste P dans les positions impaires dans deux boucles imbriquées et tu ajoutes 1 à la position donnée par la somme des deux nombres premiers.

      Tu peux placer d'office P[4] = 1 car 4 = 2 + 2

      Ensuite, tu parcours les positions paires qui te donneront le nombre de façons différentes pour exprimer chaque nombre pair comme la somme de deux nombres premiers.

      edit: Je suppose que tu as eu un MemoryError à cause du set() qui est trop gros.

      J'en ai avec P = [100] * 10**10   alors ...

      -
      Edité par PierrotLeFou 1 décembre 2023 à 5:00:35

      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

      Programme Python et conjecture de Goldbach

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown