def lire_matrice(): chaine = Gene.lire("Probleme013") i = 0 mat = "mat = [" while i < 50 * 100: if i % 50 == 0 and not i == 0: mat += "," + str(int(chaine[i:i + 50])) else: mat += str(int(chaine[i:i + 50])) i += 50 mat += "]" print(mat)
def lister(): contenu = Gene.lire("Probleme022") contenu = contenu[1:] + ",\"*\"," virgule = contenu.index(',') mot = contenu[:virgule - 1] noms = [] while mot[0] != "*": noms.append(mot) contenu = contenu[virgule + 2:] virgule = contenu.index(',') mot = contenu[:virgule - 1] return noms
def lire_matrice(): chaine = Gene.lire("Probleme011") i = 0 mat = "mat = [" while i < 20 * 20 * 3: if (i // 3) % 20 == 0: mat += "[" + str(int(chaine[i:i + 2])) elif (i // 3) % 20 == 19 and (i // 3) // 20 == 19: mat += "," + str(int(chaine[i:i + 2])) + "]]" elif (i // 3) % 20 == 19: mat += "," + str(int(chaine[i:i + 2])) + "]," else: mat += "," + str(int(chaine[i:i + 2])) i += 3 print(mat)
def lire_mat(): nombre = Gene.lire("Probleme067") mat = "mat = [" i = 0 while i < taille: if i != 0: mat += ",[" else: mat += "[" j = 0 while j <= i: pos = (i * (i + 1)) // 2 * 3 + j * 3 if j != i: mat += str(int(nombre[pos:pos + 2])) + ", " else: mat += str(int(nombre[pos:pos + 2])) j += 1 mat += "]" i += 1 mat += "]" print(mat)
import time from Utilitaire import Gene # Résumé : Parcours la chaine de caratères en incrémentant la multiplication de 13 nombres # à la fois en conservant le plus grand produit. Si l'itérateur arrive sur un 0, # il passe tous les produits possibles contenant ce dernier. if __name__ == '__main__': temps_debut = time.time() taille_produit = 13 chaine_nombre = Gene.lire("Probleme008") produit_max = 0 i = 0 while i < len(chaine_nombre) - (taille_produit - 1): produit_temporaire = 1 j = 0 presence_zero = False while j < taille_produit and not presence_zero: if produit_temporaire == 0: presence_zero = True # sort de la boucle si croise un 0 i += 2 * taille_produit - 2 # passe la section où il y a un 0 else: produit_temporaire *= int(chaine_nombre[i + j]) # sinon continue sa recherche de 0 j += 1 if produit_max < produit_temporaire: produit_max = produit_temporaire # si trouve un plus grand produit
somme = 0 for i in range(0, len(mot)): somme += correspondance(mot[i]) return somme def correspondance(char): alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" return alphabet.index(char) + 1 # Résumé : On parcourt tous les mots, s'ils sont triangulaires, on ajoute 1 au compteur. if __name__ == '__main__': temps_debut = time.time() contenu = Gene.lire("Probleme042") contenu = contenu[1:] + ",\"*\"," cmpt = 0 virgule = contenu.index(',') mot = contenu[:virgule - 1] while mot[0] != "*": if Nb.triangulaire(nombre_mot(mot)): cmpt += 1 contenu = contenu[virgule + 2:] virgule = contenu.index(',') mot = contenu[:virgule - 1] temps_fin = time.time()