Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

nombre parfait

Posté par
smir
24-11-13 à 16:49

Bonsoir, toujours des problèmes sur ALGO j'aimerais bien encore de l'aide pour cet exercice
Ecrire un algorithme qui permet d'afficher à l'écran si un nombre entier strictement positif donné au clavier par l'utilisateur est un nombre parfait ou non. L'utilisateur doit pouvoir recommencer plusieurs fois avec d'autres nombres
NB: Un entier est un nombre parfait s'il est égal à la somme de ses diviseurs autres que lui. Par exemple:
6 est un nombre parfait car il est égal à la somme de ses diviseurs qui sont 1, 2, 3
8 n'est un nombre parfait car il n'est pas égal à la somme de ses diviseurs qui sont 1, 2, 4

Posté par
Glapion Moderateur
re : nombre parfait 24-11-13 à 16:59

Bonjour, oui donc construit ton algorithme
tu demandes n
tu dois trouver ses diviseurs (pour cela le plus simple est de faire une boucle Pour I allant de 1 à n-1 et tester si N/I est entier (ça se code Partie entière de (N/I) = N/I ?). Si c'est un diviseur, tu l'additionnes à une variable S.
Une fois terminé la boucle, tu testes si S=n ou pas. Si puis tu affiches que c'est un nombre parfait et sinon tu affiches que ça n'en est pas un.

Pour progresser dans les algorithmes, il faut se battre un peu avec donc lance toi dans la syntaxe (algobox, Xcas ou calculatrice ...) on corrigera si ça ne marche pas.

Posté par
smir
re : nombre parfait 24-11-13 à 17:22

Variable : a, s, i, r
ecrire (''entrer un nombre entier positif'')
lire (a)
s=0
POUR i allant de 1 à n-1 faire
si le reste de a/i est 0 alors faire
s=s+i
fin si
fin pour
si (s=a)alors
afficher (''a est parfait'')
sinon
affiche (''a n'est pas parfait'')
fin si
FIN

Posté par
Glapion Moderateur
re : nombre parfait 24-11-13 à 18:31

Oui c'est ça

Posté par
carpediem
re : nombre parfait 24-11-13 à 23:48

salut

on peut améliorer en testant jusqu'à n

n'oublions alors pas que si n = pq alors p et q sont diviseurs (faire cependant un test si p = q ou non)

et d'autre part n = n * 1 donc on initiale s = 1 et n commence à 2

...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !