• Aucun résultat trouvé

Algorithme de recherche des diviseurs d'un entier en langage naturel1 : s ← √2 : i

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithme de recherche des diviseurs d'un entier en langage naturel1 : s ← √2 : i"

Copied!
3
0
0

Texte intégral

(1)

Algorithme de recherche des diviseurs d'un entier en langage naturel 1 : s ← n

2 : i ← 1

3 : Tant que i ≤ s

4 : Si le reste de la division euclidienne de n par i est nul alors 5 : afficher i

6 : afficher n/i 7 : i ← i+1

8 : Fin du si 9 : Fin tant que

1) Programmer cet algorithme avec mu editor et corriger l'erreur qui s'est glissé.

On créera pour cela une fonction (c'est à dire une def) que l'on appellera liste_diviseur A noter : La condition du if de la ligne 4 peut se traduire par : int(n/i)==n/i

2) Louis, perfectionniste a remplacé la ligne 6 par l'instruction : Si n/i est différent de i alors

afficher n/i

Expliquer pourquoi ?

3) a) Modifier cet algorithme afin qu'il affiche le nombre de diviseurs de l'entier n On appellera c la variable qui compte le nombre de diviseur de n

b) Que peut-on en déduire sur n si on trouve c = 2 ?

4) Toujours perfectionniste, Louis décide d'obtenir cette liste de diviseurs dans l'ordre croissant . En vous renseignant sur les listes en langage python, écrire une fonction en langage python

qui renvoie la liste des diviseurs dans l'ordre croissant

5) Définition : « Un nombre parfait est un entier naturel qui est égal à la somme de ses diviseurs propres ( ie : ses diviseurs différents de lui-même) » 6 est parfait car 1+2+3=6

a) Ecrire une fonction en langage python permettant de savoir si un nombre est parfait ou non (on pourra utiliser la fonction précédente)

b) Programmer cet algorithme et déterminer les nombres parfaits inférieurs à 30 ? c) Combien y a-t-il de nombres parfaits inférieurs inférieurs à 20 000 ?

(2)

sanstitre - 12.08.2018

1 VARIABLES

2 s EST_DU_TYPE NOMBRE 3 i EST_DU_TYPE NOMBRE 4 n EST_DU_TYPE NOMBRE 5 r EST_DU_TYPE NOMBRE 6 sdd EST_DU_TYPE NOMBRE 7 d EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME

9 n PREND_LA_VALEUR 1 10 d PREND_LA_VALEUR 0 11 TANT_QUE (n<=500) FAIRE 12 DEBUT_TANT_QUE

13 s PREND_LA_VALEUR sqrt(n) 14 i PREND_LA_VALEUR 1

15 sdd PREND_LA_VALEUR 0 16 TANT_QUE (i<=s) FAIRE 17 DEBUT_TANT_QUE

18 SI (n/i==floor(n/i)) ALORS 19 DEBUT_SI

20 sdd PREND_LA_VALEUR sdd+i 21 SI (n/i!=i) ALORS

22 DEBUT_SI

23 r PREND_LA_VALEUR n/i 24 sdd PREND_LA_VALEUR sdd+r 25 FIN_SI

26 FIN_SI

27 i PREND_LA_VALEUR i+1 28 FIN_TANT_QUE

29 sdd PREND_LA_VALEUR sdd-n 30 SI (sdd==n) ALORS

31 DEBUT_SI

32 d PREND_LA_VALEUR d+1 33 FIN_SI

34 n PREND_LA_VALEUR n+1 35 FIN_TANT_QUE

36 AFFICHER "nombre de nombres parfaits inférieurs à "

37 n PREND_LA_VALEUR n-1 38 AFFICHER n

39 AFFICHER d

(3)

40 FIN_ALGORITHME

Références

Documents relatifs

3) N°, titre, coût, prix, nombre de visiteurs dont le prix est compris entre 1 et 3 euros.(avec et sans between) 4) Liste des expositions qui ont débuté le 20/12/2011. 5) Liste

1) Toutes les informations sur les expositions terminées avant le 01/01/2012 qui ont eu plus de 2000 visiteurs par ordre décroissant de visiteurs. 2) Liste des informations sur les

Dans la deuxième partie, nous définissons une fonction de traduction, permettant l'obtention d'une première forme pour la série à partir d'une expression régulière.. Dans la

Dans cet exercice, on souhaite déterminer l’e ff et à long terme d’une baisse ou d’une hausse à taux constant à partir de la valeur initial 1 (on peut imaginer 1hectare, 1

Programmer cet algorithme sur machine (calculatrice ou ordinateur avec le logiciel Algobox). Écrire le programme en indiquant la marque de la calculatrice dans le cas d’un programme

Exercice 03 : Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa

[r]

[r]