Exercice python nombre premiers et fonction seuil

Fermé
shako444 Messages postés 1 Date d'inscription mardi 24 septembre 2019 Statut Membre Dernière intervention 24 septembre 2019 - Modifié le 24 sept. 2019 à 19:32
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 - 25 sept. 2019 à 11:28
Bonjour, j'ai un exercice à faire pour demain dont l'énoncé est :
Reprendre le code de la fonction SommeCarres(n) qui retourne la somme des carrés des n premiers entiers (copier/coller).
Implémenter une fonction seuil(s) qui prend en paramètre le seuil s et renvoie la plus petite valeur de n pour laquelle la somme des carrés des n premiers entiers est supérieure à s.

Et je n'arrive pas à mettre en oeuvre ma fonction seuil
Pour l'instant j'ai juste ça :
def sommecarres(n):
    somme=0
    for i in range (n+1):
      somme = somme + i**2
    return somme

def seuil(n):
    for i in range (n+1):
      s= sommecarres(i)
      print("la somme des carrés jusqu'a",i,"est",s)
    return 1
    
seuil(15)


Ce qui m'affiche :la somme des carrés jusqu'a 0 est 0
la somme des carrés jusqu'a 1 est 1
la somme des carrés jusqu'a 2 est 5
la somme des carrés jusqu'a 3 est 14
la somme des carrés jusqu'a 4 est 30
la somme des carrés jusqu'a 5 est 55
la somme des carrés jusqu'a 6 est 91
la somme des carrés jusqu'a 7 est 140
la somme des carrés jusqu'a 8 est 204
la somme des carrés jusqu'a 9 est 285
la somme des carrés jusqu'a 10 est 385
la somme des carrés jusqu'a 11 est 506
la somme des carrés jusqu'a 12 est 650
la somme des carrés jusqu'a 13 est 819
la somme des carrés jusqu'a 14 est 1015
la somme des carrés jusqu'a 15 est 1240

Merci pour les personnes qui auront prit le temps de lire et m'aider !




Configuration: Windows / Chrome 77.0.3865.90

2 réponses

Bonjour.

L'énoncé qui est donné est quand même pas bien clair; pas clair du tout même; on te demande de créer une fonction seuil avec un paramètre s définissant le seuil mini, ok. Mais cette fonction doit travailler sur quoi ? Je pense tout de même que cette fonction devrait avoir un second paramètre puisqu'il est demandé de lui faire renvoyer la plus petite valeur de n (exécutions de sommecarres) au-dessus du seuil.

Alors pour moi, cela devrait ressembler à quelque chose comme.

def seuil(n, s):
    for i in range(n+1):
        somme = sommecarres(i)
        if somme > s:
            return i
    return 0


for (i, s) in ((5, 12), (7, 45), (12, 58), (2, 32)):
    res = seuil(i, s)
    if res:
        print("Le min pour %u avec le seuil %u est de %u" % (i, s, res))
    else:
        print("%u avec le seuil %u n'atteint pas le minimum désiré" % (i, s))


L'intérêt de cette fonction est plus que limitée; inutile même; donc à se demander si c'est bien cela qui est formulé dans l'énoncé...
1