Valid XHTML     Valid CSS2    

Listing du fichier quatrecarres.php

 

00001     <?php
00002     
00003     ######################################################################################
00004     
00005     function 
ds4c($nombre) {  # décomposition en somme de 4 carrés
00006     
00007     ######################################################################################
00008     
00009     $dbg 
# 0 en standard, 1 pour debug
00010     
00011     # valeur limite : la racine carrée du nombre
00012     
00013     $racine 
round(sqrt($nombre)) ;
00014     
00015     $n1 
$racine ;
00016     
00017     # on boucle sur n1, n2 et n3 seulement,
00018     # n4 s'en déduira
00019     # comme il peut y avoir plusieurs solutions,
00020     # on renvoie ce qu'on a trouvé le plus tot possible
00021     
00022     while (
$n1>=0) {
00023       $cn1 
$n1*$n1 ;
00024       $n2  
$racine ;
00025       while ($n2
>=0) {
00026         $cn2 
$n2*$n2 ;
00027         $n3  
$racine ;
00028         while ($n3
>=0) {
00029           $cn3 
$n3*$n3 ;
00030           $cn4 
$nombre - ($cn1+$cn2+$cn3) ;
00031           if ($dbg
==1) {
00032             echo " n1 
$n1 n2 $n2 n3 $n3 cn4 $cn4 \n" ;
00033           } # fin si
00034           if (
$cn4>=0) {
00035             $n4 
sqrt($cn4) ;
00036             if ($dbg
==1) {
00037               echo "   n4 possible 
$n4 \n" ;
00038             } # fin si
00039             if (
round($n4)==$n4) {
00040               return( array($n1
,$n2,$n3,$n4) ) ;
00041             } ; # fin si
00042           } ; 
# fin si
00043           $n3
-- ;
00044         } # fin tant que sur n3
00045         $n2
-- ;
00046       } # fin tant que sur n2
00047       $n1
-- ;
00048     } # fin tant que sur n1
00049     
00050     return( array(
"?","?","?","?") ) ;
00051     
00052     } # fin fonction ds4c
00053     
00054     ?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)