• Aucun résultat trouvé

Algorithmes d'arithmétique

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmes d'arithmétique"

Copied!
3
0
0

Texte intégral

(1)

TD : Programmes d’arithm´ etique

2 heures

R´edig´e par Pascal Delahaye

12 d´ ecembre 2017

I] Les nombres premiers

1. Erathost`ene : construction d’une liste de nombres premiers

Construire un programmeListe prem(N)qui renvoie tous les nombres premiers inf´erieurs ou ´egaux `aN. Ce programme devra imp´erativement mettre en oeuvre l’algorithme d’Erathost`ene.

L’id´ee est d’obtenir une liste de taille N+1 telle que L[k] = 1 si k est premier et L[k] = 0 sinon.

On proc´edera de la fa¸con suivante :

-> On cr´ee une liste de taille N+1 ne contenant que des 1 : L = [1]*(N+1) L[0] = 0

L[1] = 0 -> p = 2

-> Tant que p <= sqrt(N) faire :

- eliminer les multiples de p inf´erieurs ou ´egaux `a N - redefinir p en posant : p = le nombre premier suivant

-> On construit alors la liste des nombres premiers cherch´es en ne gardant que les valeurs de k telles que L[k] = 1

On construit alors la listeListprem = Liste prem(10000)contenant les nombres premiers inf´erieurs `a 10000.

Cette liste sera utilis´ee dans les programmes suivants.

2. Ulisation de la liste de nombres premiers trouv´ee :

1

(2)

MPSI - 2016/2017 Arithm´etique http://pascal.delahaye1.free.fr/

(a) Test de primalit´e :

Nous avons vu en cours que si un nombrenest compos´e, alors il admet un diviseur premier inf´erieur ou ´egal

`a√

n. En utilisant ce r´esultat, construire une fonctionTestprem(n)qui teste sin≥2 est un nombre premier.

(b) D´ecomposition en facteurs premiers :

Construire une proc´edureDecomp(n)permettant de d´ecomposer un entiern≥2 en facteurs premiers.

On retournera le r´esultat sous la forme d’une liste de couples (p, vp) o`upest premier etvp est la valuation denenp.

(c) R´epartition des nombres premiers :

Construire une proc´edure Graphe(N) qui renvoie le graphe repr´esentant le nombre de nombres premiers inf´erieurs `a n∈[[2, N]] en fonction den.

On pourra alors v´erifier (en adaptant la proc´edure pr´ec´edente) qu’au voisinage de +∞, ce nombre est

´equivalent `a lnnn

II] PGCD

1. PGCD et PPCM :

Construire une proc´edurePgcd Ppcm(a,b)qui renvoie le PGCD et le PPCM de deux entiersa, b∈N. Ce programme devra reposer sur l’algorithme d’Euclide.

2. BEZOUT :

Construire une proc´edureBezout(a,b)qui renvoie un couple de Bezout associ´e aux deux entiersa, b∈N. Ce programme devra reposer sur l’algorithme de Bezout vu en cours.

Rappel de l’algorithme:

On construit les 3 suites (rk), (uk) et (vk) telles que :

r0=a r1=b ,

u0= 1 u1= 0 et

v0= 0 v1= 1 . Et pour toutk∈N:

• rk+2 est le reste de la division euclidenne derk parrk+1.

• uk+2=uk−quk+1 o`uqest le quotient de la division euclidienne derk parrk+1.

• vk+2 =vk−qvk+1 o`uqest le quotient de la division euclidienne derk parrk+1. Nous avons alors la relation :uka+vkb=rk pour toutk∈N.

Or, d’apr`es Euclide, nous savons que le dernier reste non nulrn0 est le PGCD deaetb.

Notre programme doit donc renvoyer le couple (un0, vn0) 3. Equations Diophantiennes :

Construire une proc´edureDiophant(a,b,c)qui renvoie les solutions de l’´equation diophantienne ax+by=c Ce programme pourra utiliser les programmesPgcd PpcmetBezoutpr´ec´edents.

Principe de l’algorithme :

• On v´erifie si le PGCD divise c

• Si oui :

— On simplifie le probl`eme en divisant a, b et c par le PGCD

— On recherche une solution particuli`ere `a l’aide d’un couple de Bezout

— On en d´eduit la forme des solutions 2

(3)

MPSI - 2016/2017 Arithm´etique http://pascal.delahaye1.free.fr/

III] DIVERS

1. Nombres parfaits :

On dit qu’un entier naturel est parfait lorsqu’il est ´egal `a la somme de ses diviseurs positifs strictes.

(a) Construire une proc´edureSomme div(n)qui renvoie la somme des diviseurs den∈N. (b) En d´eduire une proc´edureTest parfait(n)qui teste si le nombren∈N est parfait.

(c) En d´eduire une proc´edureListe parfait(N)qui renvoie la liste des nombres parfaits inf´erieurs `a N.

2. Nombres amiables :

On dit que deux entiers naturels a et b sont amiables lorsque la somme des diviseurs de l’un est ´egale `a la somme des diviseurs de l’autre. Construire une proc´edureListe amiable(N)qui renvoie la liste des couples de nombres amiables inf´erieurs ou ´egaux `a N.

3

Références

Documents relatifs

On peut trouver sur la toile une récurrence toute simple qui permet de calculer la somme des diviseurs d’un nombre. On utilise cette condition pour tester

Cette clart´ e, cette limpidit´ e si ´ energiquement exig´ ee ici d’une th´ eorie math´ ematique, je l’exigerai encore davantage d’un probl` eme math´ ematique parfait ; ce

Dans la com` ete de la somme des diviseurs d’Euler, on r´ eussit ` a reproduire les mˆ emes concentrations de points qui correspondent aux sommes des diviseurs des nombres de la

Dans la com` ete de la somme des diviseurs d’Euler, on r´ eussit ` a reproduire les mˆ emes concentrations de points qui correspondent aux sommes des diviseurs des nombres de la

Dans la com` ete de la somme des diviseurs d’Euler, on r´ eussit ` a reproduire les mˆ emes concentrations de points qui correspondent aux sommes des diviseurs des nombres de la

Dans la mesure où la somme des diviseurs permet totalement de distinguer les nombres premiers des nombres composés puisqu’elle vaut n + 1 pour un nombre n premier alors qu’elle

Si x nest pas la somme de deux carrés, j'en conclus que x est de la forme 4m—i, puisque (.r-}-i) doit être divisible .par 4- Donc, tout nombre premier qui nest pas la somme de

L’accès aux archives de la revue « Nouvelles annales de mathématiques » implique l’accord avec les conditions générales d’utilisation ( http://www.numdam.org/conditions )..