10Factorisation premièreNombre : entreeNb boutonFactoriser0boutonfactoriserFactorisation : texteFacto Créer un textede contenuCréer un textede contenuInsérer un saut de ligneInsérer un saut de lignesi clic surfairefixeretapeFactoàCréer un boutonaffichantCréer une entréede contenu initialCréer un textede contenuCréer un titrecontenantMarge gauchepixels'actions en boucle' appelée une seule foisPas de canevaspouractions initiales pouractions en boucle Mécanisme etapeFacto pour effacer l'ancienne rép…etapeFacto0=1texteFacto factoriser0.01quitter la fonction (en retournant)FairedanssecondesFixe le contenu deàfixeretapeFactoà0entreeNbvaleur de 20 n1>estdivisible parnpestdivisible parnpnp1+np÷fixernàfixernpàsifairesinonnp1=créer un texte avecfactomultpfixerfactoàcréer un texte avecfactomultp^(np)fixerfactoà*fixermultàrépétertant quefairep1+0fixernpàfixerpàsifairetexteFactofactocode mathFinaliser les expressions mathématiquesFixe le contenu deàrépétertant quefairefixermultàfixernpàfixerpàfixerfactoàfixernàfixeretapeFactoàsifaireCommentairepourfactoriser retour


var canvas, entreeNb, bouton, n, facto, p, np, texteFacto, mult, etapeFacto;

/**
 * Fonction exécutée une fois, au départ
 */
function actions_initiales() {
  //noCanvas();
  noLoop();
  document.body.style.paddingLeft="10px";
  createElement("h1",'Factorisation première');
  createSpan('Nombre : ');
  entreeNb=createInput('');
  bouton=createButton('Factoriser');
  etapeFacto = 0;
  siClicPrudent("bouton",bouton,"factoriser",factoriser);
  createSpan("<br>");
  createSpan("<br>");
  createSpan('Factorisation : ');
  texteFacto=createSpan('');
}

/**
 * Fonction exécutée périodiquement, de façon répétée
 */
function actions_en_boucle() {
}

/**
 * Décrire cette fonction…
 */
function factoriser() {
  // 'Mécanisme etapeFacto pour effacer l\'ancienne réponse avant le calcul'
  if (etapeFacto == 0) {
    etapeFacto = 1;
    fixeContenuPrudent("texteFacto",texteFacto,'');
    faireDelaiPrudent("factoriser",factoriser,0.01);
    return ;
  }
  etapeFacto = 0;
  n = valeurPrudent("entreeNb",entreeNb);
  facto = '';
  p = 2;
  np = 0;
  mult = '';
  while (n > 1) {
    if (n % p == 0) {
      while (n % p == 0) {
        np = np + 1;
        n = n / p;
      }
      if (np == 1) {
        facto = [facto,mult,p].join('');
      } else {
        facto = [facto,mult,p,'^(',np,')'].join('');
      }
      mult = '*';
    }
    p = p + 1;
    np = 0;
  }
  fixeContenuPrudent("texteFacto",texteFacto,(codeMath(facto)));
  refreshMathJax();}
Exécuter