예제 #1
0

# 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.
예제 #2
0
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.