TD-Prog Arithmétique

Préambule

Pour faire de l'arithmétique en Pascal nous utiliserons le type LongInt qui représente les nombres entiers situés entre -2 147 483 648 et 2 147 483 647. Les entiers de type LongInt sont signés et codés sur 4 octets.

Le langage Pascal fournit de plus les opérateurs div et mod qui permettent d'obtenir le quotient et le reste de la division euclidienne de deux entiers. Ainsi 23 div 5 donne 4 et 23 mod 5 donne 3.

Nombres premiers

  1. Ecrire la fonction ppdp(n:LongInt):LongInt; qui renvoie le plus petit diviseur premier de l'entier naturel n.
    Pour trouver le plus petit diviseur premier de n on pourra tester 2, puis les entiers impairs inférieurs ou égaux à la racine carrée de n.
  2. Ecrire la fonction estPremier(n:LongInt):boolean; qui indique si l'entier naturel n est un nombre premier.
  3. Vérification. Ecrire un programme qui pour un entier n entré par l'utilisateur indique qu'il est premier ou affiche son plus petit diviseur premier.

Nombres parfaits et nombres amis

Un entier naturel est un nombre parfait s'il est égal à la somme de ses diviseurs propres. Par exemple, les diviseurs de 6 sont 1, 2, 3 et 6; ses diviseurs propres sont 1, 2 et 3; la somme de ses diviseurs propres est 1+2+3=6, 6 est donc un nombre parfait.

Deux entiers naturels sont amis si chacun d'entre eux est égal à la somme des diviseurs propres de l'autre.

  1. Ecrire la fonction somDiv(n:LongInt):LongInt; qui renvoie la somme des diviseurs propres de n.
  2. Ecrire un programme qui affiche la liste des nombres parfaits inférieurs à 10000.
  3. Ecrire un programme qui affiche la liste des couples de nombres amis inférieurs à 10000.


Correction
Retour