Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    108

    Minimo comune multiplo in php

    Salve, sono ancora io
    Vorrei calcolare l'mcm di 2 numeri secondo l'algoritmo di Euclide:


    Quindi ho impostato il codice come segue:
    Codice PHP:
    <?php
    $n1 
    47;
    $n2 24;
    //funzione del MCD
    function MCD($n1$n2){
        while (
    $n1 != $n2){
            if (
    $n1 $n2){
                
    $n1 $n1 $n2;
            } else {
                
    $n2 $n2 $n1;
            }
        }
        return 
    $n1;
    }

    $mcd MCD($n1$n2);

    //funzione del mcm
    function mcm($n1$n2){
        (
    $n1*$n2)/$mcd;
    return 
    $n1;
    }

        
    $mcm mcm($n1$n2);
        echo 
    "Il mcm è $mcm.";
    ?>
    Per il calcolo del'MCD ho visto su internet, mentre l'mcm l'ho calcolato con l'algoritmo di Euclide.
    Dato che mi dà una serie di errori:

    Notice: Undefined variable: mcd in c:\programmi\easyphp1-8\www\prove.php on line 20

    Warning: Division by zero in c:\programmi\easyphp1-8\www\prove.php on line 20
    Il mcm è 47.

    ho tentato di trovare qualcosa sul web e ho notato che il codice lo impostano diversamente..
    Ora la mia domanda è.. perchè non è possibile farlo seguendo l'algoritmo di euclide? (sarò sicuramente io che sbaglio, quindi illuminatemi )

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    ciao senti così non potra mai funzionare perchè il valore di $mcd nella funzione mcm sarà sempre indefinito. semmai potrà funzionare così...
    Codice PHP:
    <?php
    $n1 
    47
    $n2 24
    //funzione del MCD 
    function MCD($n1$n2){ 
        while (
    $n1 != $n2){ 
            if (
    $n1 $n2){ 
                
    $n1 $n1 $n2
            } else { 
                
    $n2 $n2 $n1
            } 
        } 
        return 
    $n1



    //funzione del mcm 
    function mcm($n1$n2$MCD){ 
             
        (
    $n1*$n2)/$MCD
    return 
    $n1


        
    $mcd MCD($n1$n2);  
        
    $mcm mcm($n1$n2,$mcd);
        
        echo 
    "Il mcm è $mcm."
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    108
    Grazie per la risposta
    Ora non mi segnala errori, solo che la funzione non funziona (scusa il gioco di parole ) perchè mi restituisce $n1

  4. #4
    Codice PHP:

    <?php
    $num1 
    47
    $num2 24

    //funzione del MCD 
    function MCD($n1$n2){ 
        while (
    $n1 != $n2){ 
            if (
    $n1 $n2){ 
                
    $n1 $n1 $n2
            } else { 
                
    $n2 $n2 $n1
            } 
        } 
        return 
    $n1


    //funzione del mcm 
    function mcm($n1$n2$nMCD){ 
             
        (
    $n1*$n2)/$nMCD
        return 
    $n1


        
    $m1 MCD($num1$num2);  
        
    $m2 mcm($num1$num2$m1);
        
        echo 
    "MCD: $m1 - mcm: $m2";
    ?>
    ok ammetto di non averlo provato e di averlo modificato al volo.. ma così funziona? Spero di non aver scritto delle cavolate..
    Ondare, il mio blog!

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    108
    Ancora niente
    dav22 potresti spiegarmi gentilmente che modifiche hai apportato?

  6. #6
    Codice PHP:
    <?php
    $n1 
    47;
    $n2 24;
    //funzione del MCD
    function MCD($n1$n2){
        while (
    $n1 != $n2){
            if (
    $n1 $n2){
                
    $n1 $n1 $n2;
            } else {
                
    $n2 $n2 $n1;
            }
        }
        return 
    $n1;
    }

    //funzione del mcm
    function mcm($n1$n2){
            
        
    $mcd MCD($n1$n2)
        
    $mcm = ($n1*$n2)/$mcd;
        return 
    $mcm;
    }
     
    $mcm mcm($n1$n2);
    echo 
    "Il mcm è ".$mcm;
    ?>
    prova cosi....dovrebbe andare
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  7. #7
    Originariamente inviato da TheMaker94
    Ancora niente
    dav22 potresti spiegarmi gentilmente che modifiche hai apportato?
    ho fatto la modifica ma non ho controllato l'algoritmo.. e infatti il tuo errore è sempre stato che in mcm fai si il calcolo ma poi te restituisci sempre e solo n1

    codice:
    //funzione del mcm 
    function mcm($n1, $n2){ 
        ($n1*$n2)/$mcd; 
    return $n1; 
    }
    basta che lo cambi con (almeno nel mio esempio)

    codice:
    //funzione del mcm 
    function mcm($n1, $n2){ 
       return ($n1*$n2)/$mcd; 
    
    }
    oppure usi direttamente quello di mr.click
    Ondare, il mio blog!

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    108
    Grazie mille a tutti per l'aiuto, quello di mr.click funziona benissimo ^^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.