Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- # Mariette, Virey
- #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- """Devoir en temps libre n°2."""
- ## Exercice 1
- def nombre_impairs_divisibles_par_7(n):
- """Compte le nombre d'entiers impairs divisibles par 7 et compris entre 1 et n"""
- compteur = 0 #variable compteur initialisé à 0
- for nombre in range(1, n + 1):
- if nombre % 7 == 0 and nombre % 2 == 1:
- compteur += 1
- return compteur
- def somme_impairs_divisibles_par_7(n):
- """Somme les entiers impairs divisibles par 7 et compris entre 1 et n"""
- somme = 0 #variable compteur initialisé à 0
- for nombre in range(1, n + 1):
- if nombre % 7 == 0 and nombre % 2 == 1:
- somme += nombre
- return somme
- ## Exercice 2
- def tous_positifs(liste):
- """Vérifie si une liste de nombre est composée de nombres strictements positifs ou nuls"""
- for nombre in liste:
- if nombre < 0:
- return False
- return True
- ## Exercice 3
- def probleme_48(n):
- """Renvoie le nombre composé des 10 derniers chiffres du résultat de la somme 1**1 + 2**2 + ... + n**n"""
- somme = 0
- for m in range(1, n + 1):
- somme += m ** m
- return int(((somme/10000000000) - int(somme / 10000000000)) * 10000000000)
- ## Exercice 4
- def separe_petits_grands(liste, seuil):
- """Sépare en deux listes distinctes "petits" et "grands" issues du tri d'une seule liste en fonction d'une valeur seuil"""
- petits = []
- grands = []
- for i in range(len(liste)):
- if liste[i] > seuil:
- grands += [liste[i]]
- else:
- petits += [liste[i]]
- return (petits, grands)
- ## Exercice 5
- import math
- def prix_total(prix_au_kg, masses_voulues):
- """Donne le total en euro arrondi à l'euro supérieur nécessaire à l'achat des ingrédients en fonction de la quantité nécessaire et du prix au kg"""
- prix = 0
- for num_ingredient in range(len(prix_au_kg)):
- prix += prix_au_kg[num_ingredient] * masses_voulues[num_ingredient]
- return math.ceil(prix)
- ## Exercice 6
- def calcul_somme_ligne(liste_): #on crée une fonction qui calcule la somme d'une seule ligne
- #TODO : intégrer cette fonction dans une boucle for qui va de la premiere à la derniere ligne et compare les résultats de cette fonction
- """Calcule la somme des éléments d'une ligne"""
- somme = 0
- for colonnes in range(len(liste_)):
- somme += liste_[colonnes]
- return somme
- def calcul_somme_colonne(num_colonne, grille):
- """Calcule la somme des éléments d'une colonne"""
- somme = 0
- for lignes in range(len(grille)):
- somme += grille[lignes][num_colonne]
- return somme
- def calcul_somme_diago(grille):
- """Calcule la somme des éléments de la diagonale G/D"""
- somme1 = 0
- somme2 = 0
- indice_down = len(grille)
- for indice in range(len(grille)):
- indice_down -= 1
- somme1 += grille[indice][indice]
- somme2 += grille[indice][indice_down]
- if somme1 != somme2:
- return False
- return somme1
- def est_carre_magique(grille):
- """Verifie si la grille fournie est un carré magique"""
- #Première étape: Vérification des entiers (appartenance à [1; n**2]
- for lignes in range(len(grille)):
- for colonnes in range(len(grille[lignes])):
- if grille[lignes][colonnes] > len(grille) ** 2 or grille[lignes][colonnes] < 1:
- return False
- #Deuxième étape: Vérification des sommes des lignes
- for ligne in range(len(grille) - 1):
- if calcul_somme_ligne(grille[ligne]) != calcul_somme_ligne(grille[ligne + 1]):
- return False
- somme_ligne = calcul_somme_ligne(grille[0])
- #Deuxième étape: Vérification des sommes des colonnes
- for colonne in range(len(grille) - 1):
- if calcul_somme_colonne(colonne, grille) != calcul_somme_colonne(colonne + 1, grille):
- return False
- somme_colonne = calcul_somme_colonne(0, grille)
- #Troisième étape: Vérification des sommes des diagonales
- if calcul_somme_diago(grille) == False:
- return False
- somme_diago = calcul_somme_diago(grille)
- #Quatrième étape: Vérification de la cohérence des sommes entre lignes, colonnes et diagos
- if somme_ligne != somme_colonne or somme_ligne != somme_diago or somme_colonne != somme_diago:
- return False
- return True #si toutes les conditions sont vérifiées la fonction renvoie True
- ## Exercice 7
- def detection_tricheur(numeros):
- """À compléter."""
- raise NotImplementedError(numeros)
- ## Exercice 8
- def liberation_prisonniers(n):
- """À compléter."""
- raise NotImplementedError(n)
- ## Exercice 9
- def look_and_say(terme):
- """À compléter."""
- raise NotImplementedError(terme)
- def suite_de_conway(n):
- """À compléter."""
- # La variable "_" est une convention pour dire que l'on n'aura pas besoin
- # de ce résultat et permet de ne pas générer d'avertissement
- for _ in range(n):
- pass
- raise NotImplementedError(n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement