Générateur de carrés anarchiques...

Bonjour,
Entrez un nombre n positif pair et seulement pair et vous me dites.... (on verra plus tard pour les impairs et les négatifs)
Oui ça ne sert à rien mais c est intriguant...
Cordialement,
import math

def generate_sequences_and_calculate_gcd(n):
    # Calcul du nombre de termes des suites
    num_terms = (n + 1) // 2

    # Initialisation des suites
    suite1 = [n]
    suite2 = [2 * n]

    odd_number = 1  # Premier nombre impair
    for i in range(1, num_terms):
        suite1.append(suite1[-1] + odd_number)
        suite2.append(suite2[-1] + odd_number)
        odd_number += 2

    # Au rang n, additionner la valeur de la première suite avec l'incrément n
    somme1 = suite1[-1] + n

    # Additionner la valeur de la première suite, de la seconde et l'incrément n
    somme2 = suite1[-1] + suite2[-1] + n

    # Calcul du PGCD
    pgcd = math.gcd(somme1, somme2)

    # Diviser le PGCD par 2 jusqu'à obtenir un nombre impair
    while pgcd % 2 == 0:
        pgcd //= 2

    # Diviser le nombre impair par 7 jusqu'à ce qu'il ne soit plus multiple de 7
    while pgcd % 7 == 0:
        pgcd //= 7

    return pgcd

# Entrée de l'utilisateur
n = int(input("Entrez un nombre entier n : "))

# Calcul et affichage des PGCD pour les nombres impairs de n à n+100
for i in range(n, n + 101, 2):
    pgcd_final = generate_sequences_and_calculate_gcd(i)
    print(f"PGCD pour n={i}: {pgcd_final}")

Réponses

  • OliveM
    Modifié (10 Jul)
    La version modifiée pour ne traiter qu un nombre à la fois

    import math

    def calculate_pgcd(n):
        # Initialisation des suites
        suite1 = [n]
        suite2 = [2 * n]

        odd_number = 1  # Premier nombre impair
        num_terms = (n + 1) // 2

        for i in range(1, num_terms):
            suite1.append(suite1[-1] + odd_number)
            suite2.append(suite2[-1] + odd_number)
            odd_number += 2

        # Au rang n, additionner la valeur de la première suite avec l'incrément n
        somme1 = suite1[-1] + n

        # Additionner la valeur de la première suite, de la seconde et l'incrément n
        somme2 = suite1[-1] + suite2[-1] + n

        # Calcul du PGCD
        pgcd = math.gcd(somme1, somme2)

        return pgcd

    # Entrée de l'utilisateur
    n = int(input("Entrez un nombre entier n : "))

    # Calcul et affichage du PGCD
    pgcd_final = calculate_pgcd(n)
    print(f"PGCD pour n={n}: {pgcd_final}")



  • OliveM
    Modifié (11 Jul)
     
  • Il existe un bouton "Code" pour insérer du code afin qu'il soit lisible, sans saut de ligne intempestif, et mis automatiquement en couleur.
    Cela permettrait aux quelques personnes vaguement intéressées de mieux comprendre où tu veux en venir... mais pour l'instant, en plus d'être assez peu attrayant, c'est difficile à lire, donc encore moins alléchant.
  • Aussi, on peut ajouter des exemples de sorties. Je ne m’appelle pas Pascal et ne suis pas un de ses frères, ni suis un serpent. 
Connectez-vous ou Inscrivez-vous pour répondre.