Coder facteur 2 en PHP

Bonjour !

Je me doute que ce doit être d'une facilité enfantine pour de vrais matheux, mais pour le pauvre littéraire que je suis, c'est un vrai mystère... Pour tout dire, je ne suis même pas sûr que ce soit une factorisation... Bref...

Je voudrais, par exemple à partir du nombre 23, retrouver les nombres qui le composent (dans ce cas, 16+4+2+1).

Même sans avoir le code PHP lui-même, si quelqu'un pouvait me donner la formule qui permettrait de faire ça...

Merci beaucoup !!

Réponses

  • En prenant les restes des divisions successives par 2 tu obtiens les différents chiffres de l'écriture binaire ( en commençant par la droite ) .

    Par exemple 23 :

    23 divisé par 2 = 11 reste 1
    11 divisé par 2 = 5 reste 1
    5 divisé par 2 = 2 reste 1
    2 divisé par 2 = 1 reste 0
    1 divisé par 2 = 0 reste 1

    L'écriture binaire de 23 est $\overline{10111}$ .

    Domi

    Domi
  • Génial !! Merci beaucoup, il ne me reste plus qu'à coder ça en PHP, et le tour est joué :) Merci beaucoup !!
  • Pour les personnes que ça intéresserait, voici le code qui accomplit ce que je voulais :

    function addn($number) {
    $nb = array_reverse(str_split(decbin($number)));
    for ($p=0; $p
  • bonjour,
    ça me rappelle mon enfance.

    Il y a aussi une autre méthode, voici l'algorithme.
    on pose $f(x)=[log_2(x)]$ partie entière du log à base 2
    on veut calculer la décomposition de x.

    initialisation
    $y=x$
    $p=f(y)$
    $X=10^p$
    $y=y-2^p$

    tant que $y >0$
    $p=f(y)$
    $X=X+10^p$
    $y=y-2^p$
    fin tant que

    return X
Connectez-vous ou Inscrivez-vous pour répondre.