Donnez vie à vos documents numériques !
 

Décomposition en facteurs premiers

abracadabraPDF Forums PDF – Général Décomposition en facteurs premiers

  • Créateur
    Sujet
  • #73426
    michel c.
    Participant

    Bonjour, je cherche un script qui me permettrait de décomposer un nombre en un produit de nombres premiers.

    J’ai trouvé un script sur le net mais j’ai du mal à l’adapter pour qu’il fonctionne.

    Merci

    Attachments:
    You must be logged in to view attached files.
Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Auteur
    Réponses
  • #73430
    bebarth
    Maître des clés

    bonjour,
    J’avais fait ça il y a quelques temps…
    Voici le script adapté à ton exemple :
    function decomposition(nombre) {
    var nbPremiers=[];
    while (nombre%2==0) {
    nbPremiers.push(2);
    nombre=nombre/2;
    }
    for (var i=3; i<=Math.sqrt(nombre); i=i+2) {
    while (nombre%i==0) {
    nbPremiers.push(i);
    nombre=nombre/i;
    }
    }
    if (nombre>2) nbPremiers.push(nombre);
    return nbPremiers;
    }
    this.getField("Resultat").value=decomposition(this.getField("NB.1").value).toString().replace(/[,]/g," x ");

    @+

    Attachments:
    You must be logged in to view attached files.
    #73433
    Merlin
    Maître des clés

    Bonjour

     

    Désolé mais les maths et moi…

     

    #73434
    bebarth
    Maître des clés

    Tu veux que je développe ?

    😉

    #73447
    bebarth
    Maître des clés

    Cadeau !
    Affichage dans différents formats :
    if (this.getField("NB.1").value) {
    function decomposition(nombre) {
    nbPremiers=[];
    while (nombre%2==0) {
    nbPremiers.push(2);
    nombre=nombre/2;
    }
    for (var i=3; i<=Math.sqrt(nombre); i=i+2) {
    while (nombre%i==0) {
    nbPremiers.push(i);
    nombre=nombre/i;
    }
    }
    if (nombre>2) nbPremiers.push(nombre);
    return nbPremiers;
    }
    this.getField("Resultat").value=decomposition(this.getField("NB.1").value).toString().replace(/[,]/g," x ");
    //
    var nbEtExposant=[[nbPremiers[0],1]];
    for (var i=1; i<nbPremiers.length; i++) {
    if (nbEtExposant[nbEtExposant.length-1][0]==nbPremiers) nbEtExposant[nbEtExposant.length-1][1]++;
    else nbEtExposant.push([nbPremiers,1])
    }
    for (var i=0; i<nbEtExposant.length; i++) {
    if (nbEtExposant[1]==1) nbEtExposant=nbEtExposant.toString().replace(/,1$/,"");
    else nbEtExposant=nbEtExposant.toString().replace(/,/,"^");
    }
    this.getField("Resultat1").value=nbEtExposant.toString().replace(/[,]/g," x ");
    //
    var f=this.getField("Resultat2");
    f.textSize=16;
    spans=new Array();
    var j=0;
    for (var i=0; i<nbEtExposant.length; i++) {
    var XX=nbEtExposant.split("^");
    spans=new Object();
    spans.text=XX[0];
    j++;
    if (XX.length>1) {
    spans=new Object();
    spans.text=XX[1];
    spans.superscript=true;
    j++;
    }
    if (i<nbEtExposant.length-1) {
    spans=new Object();
    spans.text=" x ";
    spans.textSize=f.textSize-4;
    j++;
    }
    }
    f.richValue=spans;
    } else {
    this.getField("Resultat").value="";
    this.getField("Resultat1").value="";
    this.getField("Resultat2").value="";
    }

    @+

    Attachments:
    You must be logged in to view attached files.
    #73465
    Merlin
    Maître des clés

    Chapeau bas !

    #73702
    michel c.
    Participant

    Merci

Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.