mercredi 18 septembre 2013

Décomposition canonique des entiers relatifs - Code Scilab

C'est quoi ?

La décomposition canonique d'un entier relatif consiste à l'écrire comme un produit de puissances entières de nombres premiers. On peut démontrer que cette décomposition est unique. Je trouve cela passionnant, un peu comme si les nombres premiers étaient les atomes des entiers.

Quelques exemples


$12=2^2 \cdot 3$
$97=97$ (pas étonnant, c'est un nombre premier !)
$222=2 \cdot 3 \cdot 37$
$432=2^4 \cdot 3^3$
$624=2^4 \cdot 3 \cdot 13 $
$4325854=2 \cdot 13 \cdot17 \cdot 9787$

A quoi ça peut servir ?

Obtenir cette décomposition peut être très pratique pour obtenir certains résultats, par exemple le PGCD, le PPCM de deux entiers $p$ et $p$, écrire la racine carrée d'un entier $n$ sous forme irréductible, écrire le quotient de deux entiers $p$ et $q$ sous forme irréductible et certainement bien d'autres choses.
Je décrirai ces autres possibilités dans de futurs posts.

Code Scilab

C'est mon premier véritable code Scilab que je créé, donc, malgré sa simplicité apparente, j'ai un peu bataillé, surtout pour découvrir les fonctions offertes par ce logiciel.

Deux fonctions m'ont été très utile, sans elles, le code aurait été je pense plus compliqué à élaborer :

  •  factor(N) qui restitue sous forme de matrice les facteurs premiers de N (il peut y avoir des répétitions)
  • unique(M) qui restitue sous forme de matrice la liste des facteurs premiers (supprime les répétitions)
Trouver comment utiliser string et strcat pour élaborer la chaîne de caractères qui affiche le résultat n'a pas été immédiat également.

Code Scilab - Décomposition canonique des entiers relatifs
clear str
N=432
M=factor(N)
MU=unique(M)
l=length(M)
lu=length(MU)
P=zeros(1,lu)
for n=1:lu
    for m=1:l
        if M(m)==MU(n) then 
            P(n)=P(n)+1
        end
    end
end
disp(M)
disp(MU)
disp(P)
for n=1:lu
    str(n)=strcat([string(MU(n)),"^",string(P(n))])
end
disp(string(N)+'='+strcat(str,".","r"))





Aucun commentaire:

Enregistrer un commentaire