Nombres parfaits inférieurs à une limite

Fermé
Romain34 - Modifié par Romain34 le 20/10/2013 à 14:07
nidhogg-59 Messages postés 102 Date d'inscription mercredi 20 juin 2012 Statut Membre Dernière intervention 5 décembre 2015 - 30 oct. 2013 à 16:05
bonjour,
pouvez-vous m'aider car j'ai un programme pour trouver si un nombre est parfait :


# variables
n = int(input("donnez une valeur : "))


# Fonctions #######################################################

def diviseurs(n):
for i in range(1,n):
if n%i ==0:
yield i


def somme_div(n):
a = sum(diviseurs(n))
if a == n :
print("=",a,)
print("Donc ",n," est un nombre parfait")
if a != n :
print("=",a,)
print("Donc ",n," n'est pas un nombre parfait")

###################################################################

# Programme #######################################################

for divisor in diviseurs(n):
print(divisor)
somme_div(n)

mais j'aimerai qu'il trouve tout les nombres parfaits inferieur a une limite donné.
Pouvez vous m'aider !
Merci.
A voir également:

1 réponse

nidhogg-59 Messages postés 102 Date d'inscription mercredi 20 juin 2012 Statut Membre Dernière intervention 5 décembre 2015 27
30 oct. 2013 à 16:05
Bonjour!

Excuse-moi, mais je pense que tu t'es un peut trop cassé la tête:

Je l'ai fais de mon côté, et voilà comment j'ai procédé:

J'ai créé une fonction 'parfait(nombre)' qui renvoie 1 si le nombre passé en argument est parfait, et sinon, renvoie 0.
Ensuite, avec range j'ai testé tous les nombres en dessous de la limite donnée et ai affiché s'ils étaient parfait ou pas :
if parfait(i):
print str(i)+" est un nombre parfait"
else:
blablabla...

Voilà! si tu veux, je peux te passer mon code pour mieux comprendre!
1