un nombre harshard et un entier qui est divisible par la somme de ses chiffres.exemple: 198 est un sombre harshard.
en effet 198 est divisible par la somme de ses chiffres qui est 18 (1+9+8=18).
travail demandé:
ecrire un algorithme qui permet de rechercher et d’afficher tout les nombres harshard de l’intervalle [n,m] (avec 100<=n<m) et dont le prédécesseur de chacun est premier.
N.B: on appelle qu’un sombre est dit premier s’il est divisible uniquement par 1 et par lui meme. par définition, 1 n’est pas considéré comme étant un nombre premier.
exemple:
pour n=100 et m=135
Le programme affiche les nombres harshard suivants
102 car 102 est harshard et son prédécesseur 101 est un nombre premier.
108 car 102 est harshard et son prédécesseur 101 est un nombre premier.
108 car 108 est harshard et son prédécesseur 107 est un nombre premier.
110 car 110 est harshard et son prédécesseur 109 est un nombre premier.
114 car 114 est harshard et son prédécesseur 113 est un nombre premier.
132 car 132 est harshard et son prédécesseur 131 est un nombre premier.
Algorithme harshad
Debut
Repeter
lire(n)
lire(m)
jusqu’à(100<=n<=m)
Pour i de n à m faire
d←divisible(i)
P← premier(i-1)
Si (d=vrai) et (p=vrai) alors
ecrire(i, ‘car’,i, ‘est harshard et son predecesseur’, i-1,’est un nombre premier’)
Fin si
ecrire_nl()
Fin pour
| T.D.O.G | |
|---|---|
| Objet | Type/nature |
| i | entier |
| d | entier |
| p | entier |
| divisible | fonction |
| premier | fonction |
Fonction divisible(a:entier):booleen
Debut
S←somme(a)
Si (a mod s =0) alors
Test←vrai
Sinon
Test ← faux
Fin si
Retourner test
Fin
| T.D.O.L | |
|---|---|
| Objet | Type/nature |
| s | entier |
| test | booleen |
Fonction somme(b:entier):entier
Debut
Ch←convch(b)
S←0
Pour i de 0 à long(ch)-1 faire
S← s+valeur(ch[i])
Fin pour
Retourner s
Fin
| T.D.O.L | |
|---|---|
| Objet | Type/nature |
| ch | chaine |
| i | entier |
| s | entier |