# Résumé : Dans une liste, on ajoute les nombres pentagonaux par incrément. # À chaque ajout, on teste si cette valeur peut se combiner avec un autre # nombre de la liste pour que leur somme et leur différence soient un nombre pentagonale. if __name__ == '__main__': temps_debut = time.time() n = 1 nb_penta = list() nb_penta.append(penta(n)) n += 1 nb_penta.append(penta(n)) n += 1 trouve = False while not trouve: tempo = penta(n) n += 1 for i in nb_penta: if Nb.pentagonal(tempo - i) and Nb.pentagonal(tempo + i): d = tempo - i trouve = True nb_penta.append(tempo) temps_fin = time.time() Gene.rep(d, temps_fin - temps_debut) # Réponse : 5482660 , en : 4.044 s.
import time from Utilitaire import Nb, Gene def H(n): return n * (2 * n - 1) # Résumé : "Ainsi, les nombres hexagonaux sont simplement les nombres triangulaires d'indices impairs." - Wikipédia # On cherche un nombre issu de l'intersection entre les nombres triangulaires, pentagonaux et hexagonaux. # Les nombres hexagonaux sont un sous-ensemble des nombres triangulaires, # nous n'avons donc qu'à trouver l'intersection entre les nombres hexagonaux et pentagonaux. # On parcourt donc les nombres hexagonaux grâce à leur indice en testant # à chaque fois grâce à un test simple s'ils sont aussi élément des nombres pentagonaux. if __name__ == '__main__': temps_debut = time.time() trouve = False i = 143 while not trouve: i += 1 hexa = H(i) if Nb.pentagonal(hexa): trouve = True temps_fin = time.time() Gene.rep(hexa, temps_fin - temps_debut) # Réponse : 1533776805 , en : 0.035 s.