[PYTHON] Projet Euler 4 Coding avec une nouvelle approche échoue.

Le nombre de fois qui a la même valeur lorsqu'il est lu à partir de la gauche ou de la droite est appelé le nombre de fois. Parmi le nombre de fois exprimé par le produit de deux chiffres, le plus grand nombre est 9009 = 91 x 99.

Maintenant, trouvez le nombre maximum de fois exprimé par le produit de trois chiffres. http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%204

J'ai revu le code que j'ai écrit. Le fait qu'il soit jugé si le reste de la division devient ou non 0 semble avoir une marge d'amélioration lorsqu'on le considère en termes de jugement des nombres premiers.

pe4.png

L'algorithme suivant a été considéré comme un algorithme similaire au tamis d'élastotence.

  1. Tout d'abord, faites une liste de nombres qui est le produit de nombres à trois chiffres. [Faux, Faux, ‥, Vrai, ‥] Correspondant à chaque nombre inférieur à 1 million, où Vrai est le produit de nombres à 3 chiffres
  2. Générez le nombre de fois avec target = seed * 1000 + int (str (seed) [:: -1]), recherchez la liste ci-dessus à partir du plus grand nombre, et terminez lorsque le nombre qui devient True est trouvé.

J'ai essayé de mettre en œuvre ce qui précède.

def erat_approach():
  tl = [False]*(10**6)
  for i in range(800,1000):
    tl[i*800:i*1000:i] = [True]*200
  t = 999
  while 1:
    n = t*1000+int(str(t)[::-1])
    if tl[n]:
      break
    t-=1
  print n

Résultat: l'explosion était en retard (exécutée 100 fois)

pe4_2.png

Recommended Posts

Projet Euler 4 Coding avec une nouvelle approche échoue.
Projet Euler 37
Projet Euler 7
Projet Euler 47
Projet Euler 4
Créer un nouveau projet de calcul numérique Python
Projet Euler 38
Projet Euler 17
Projet Euler 26
Projet Euler 8
Projet Euler 23
Projet Euler 22
Projet Euler 19
Projet Euler 50
Projet Euler 42
Projet Euler 33
Projet Euler 43
Projet Euler 35
Projet Euler 36
Projet Euler 24
Projet Euler 46
Projet Euler 48
Projet Euler 45
Projet Euler 6
Projet Euler 44
Projet Euler 39
Projet Euler 40
Projet Euler 49
Projet Euler 29
Projet Euler 27
Projet Euler 41
Projet Euler 18
Projet Euler 13
Projet Euler 30
Projet Euler 16
Projet Euler 14
Projet Euler 34
Projet Euler 25
Créer une nouvelle page en confluence avec Python
[Projet Euler] problème1
Tâches au démarrage d'un nouveau projet python
Répertoire actuel lors de la création d'un nouveau avec Jupyter
Je ne peux pas transformer un projet utilisant PyWebView en un exe avec PyInstaller