Page 1 sur 1
Pb avec le param continue
Posté : 11 août 2005, 15:00
par sacco
Voilà j'ai un pb dans mon code
PHP :
<?php
// cherche tous les
// nombres premiers de 1 à 1000
for ($nb=1 ;$nb<=1000 ;$nb++);
{
$div = 1;
while ($div <= $nb)
{
$reste = $nb%$div ;
if ($reste==0)
{
if ($div==$nb) break ;
//sort de la boucle while
elseif ($div!=1) continue 2 ;
}
$div++ ;
}
echo $nb. " est un nombre premier<br>" ;
}
?>
je dois avoir un pb sur la ligne du "continue" car mon code ne fonctionne pas mais je ne vois pas
Merci d'avance
Posté : 12 août 2005, 09:50
par Elie
J'avais develloppé ce code (Qui marchait je crois :p)
<?
set_time_limit (120); // Pour etre sur
$base = 10000; // Sur combien de nombres calculons-nous.
$facteur = array('2'); // On prend 2 comme facteur de base.
for($i=1;$i<=$base;$i++) { // On fait la boucle des 10 000 chiffres
for($nb=0;$nb<count($facteur);$nb++) { // On fait la boucle des facteurs
if(is_int($i / $facteur[$nb])) $non[$i] = 1; // Si le chiffre retourne un entier quand
// il est divisé par un facteur alors il
} // n'est pas un nombre premier
if((empty($non[$i])) AND ($i > 1)) {
array_push($facteur, $i); // Si c'est un nombre premier on l'ajoute
// aux facteurs
}
}
$nombre = count($facteur) + 1; //On ajoute le 1 qui est un nombre premier.
echo "Il y a ".$nombre." nombres premiers entre 1 et ".$base;
?>
Code : Tout sélectionner
Il y a 169 nombres premiers entre 1 et 1000
Array ( [0] => 2 [1] => 3 [2] => 5 [3] => 7 [4] => 11 [5] => 13 [6] => 17 [7] => 19 [8] => 23 [9] => 29 [10] => 31 [11] => 37 [12] => 41 [13] => 43 [14] => 47 [15] => 53 [16] => 59 [17] => 61 [18] => 67 [19] => 71 [20] => 73 [21] => 79 [22] => 83 [23] => 89 [24] => 97 [25] => 101 [26] => 103 [27] => 107 [28] => 109 [29] => 113 [30] => 127 [31] => 131 [32] => 137 [33] => 139 [34] => 149 [35] => 151 [36] => 157 [37] => 163 [38] => 167 [39] => 173 [40] => 179 [41] => 181 [42] => 191 [43] => 193 [44] => 197 [45] => 199 [46] => 211 [47] => 223 [48] => 227 [49] => 229 [50] => 233 [51] => 239 [52] => 241 [53] => 251 [54] => 257 [55] => 263 [56] => 269 [57] => 271 [58] => 277 [59] => 281 [60] => 283 [61] => 293 [62] => 307 [63] => 311 [64] => 313 [65] => 317 [66] => 331 [67] => 337 [68] => 347 [69] => 349 [70] => 353 [71] => 359 [72] => 367 [73] => 373 [74] => 379 [75] => 383 [76] => 389 [77] => 397 [78] => 401 [79] => 409 [80] => 419 [81] => 421 [82] => 431 [83] => 433 [84] => 439 [85] => 443 [86] => 449 [87] => 457 [88] => 461 [89] => 463 [90] => 467 [91] => 479 [92] => 487 [93] => 491 [94] => 499 [95] => 503 [96] => 509 [97] => 521 [98] => 523 [99] => 541 [100] => 547 [101] => 557 [102] => 563 [103] => 569 [104] => 571 [105] => 577 [106] => 587 [107] => 593 [108] => 599 [109] => 601 [110] => 607 [111] => 613 [112] => 617 [113] => 619 [114] => 631 [115] => 641 [116] => 643 [117] => 647 [118] => 653 [119] => 659 [120] => 661 [121] => 673 [122] => 677 [123] => 683 [124] => 691 [125] => 701 [126] => 709 [127] => 719 [128] => 727 [129] => 733 [130] => 739 [131] => 743 [132] => 751 [133] => 757 [134] => 761 [135] => 769 [136] => 773 [137] => 787 [138] => 797 [139] => 809 [140] => 811 [141] => 821 [142] => 823 [143] => 827 [144] => 829 [145] => 839 [146] => 853 [147] => 857 [148] => 859 [149] => 863 [150] => 877 [151] => 881 [152] => 883 [153] => 887 [154] => 907 [155] => 911 [156] => 919 [157] => 929 [158] => 937 [159] => 941 [160] => 947 [161] => 953 [162] => 967 [163] => 971 [164] => 977 [165] => 983 [166] => 991 [167] => 997 )
Posté : 12 août 2005, 10:01
par Invité
Merci mais le but premier de ma question est de savoir pourquoi le "continue" me met une erreur enmode débug. Car normalement le script est bon et dois me renvoyer tous les nbres premiers .
Donc ou est la faute??
Merci d'avance
Posté : 12 août 2005, 16:57
par Invité
J'ai trouvé une simple faute de syntaxe un ";" en trop derrière le for
<?php
// cherche tous les
// nombres premiers de 1 à 1000
for ($nb=1 ;$nb<=1000 ;$nb++)
{
$div = 1; //test 1
while ($div <= $nb)
{
$reste = $nb%$div ;
if ($reste==0)
{
if ($div==$nb) break ;
//sort de la boucle while
elseif ($div!=1) continue 2;
}
$div++;
}
echo $nb. " est un nombre premier <br>" ;
}
?>