0

1 から 10 までの各数字で割り切れる最初の 50 の数字を表示するには

for ($i = 1, $j = 1; $j <= 50; $i++) {
    if ($i % 1 == 0 && $i % 2 == 0 && $i % 3 == 0 && $i % 4 == 0 && $i % 5 == 0 && $i % 6 == 0 && $i % 7 == 0 && $i % 8 == 0 && $i % 9 == 0 && $i % 10 == 0) {
        echo "$i\n";
        $j++;
    }
}
4

4 に答える 4

4
for ($i = 1; $i <= 50; $i++)
{
        $j = $i * 2520;
        echo "$j\n";
} 
于 2013-01-14T21:52:22.260 に答える
2

質問をひっくり返します。分割を検索するのではなく、分割するだけです。

$min = 5 * 7 * 8 * 9; // Min number is 5 * 7 * 8 * 9. (1,2,3,4,6,10 are implied)  Every number that meets the condition is a multiple of this.
for ($i = 1; $i <= 50; $i++)
{
  echo $min * $i; 
  echo "\n";
}
于 2013-01-14T22:02:54.513 に答える
1

ループをネストして、モジュラス演算子( ) を使用できます%

for ($i = 1, $count = 0; $count < 50; $i++) {
    $good = true;
    for ($j = 2; $j <= 10; $j++) {
         if ($i % $j != 0) {
             $good = false;
             break;
         }
    }

    if ($good) {
        echo "$i\n";
        $count++;
    }
}
于 2013-01-14T21:46:54.680 に答える
1

それらが、の倍数であるかどうかをテストするだけでよく9、そうであれば、カウンターをインクリメントします。が に達すると、メイン ループが壊れます。875jj50

$div = array(9,8,7,5);
function isMultipleOf10($num){
    for($i=0;$i<4;$i++){
        if($num%$div[$i]!=0){
            return 0;
        }
    }
    return 1;
}
$i = 1;
$j = 0;
while($j<50){
    if(isMultipleOf10($i)){
        echo $i . "\n";
        $j++;
    }
    $i++;
}
于 2013-01-14T21:58:41.170 に答える