可被其成分整除的数字

时间:2016-06-04 18:19:12

标签: php arrays

我需要打印从0到n的数字,这些数字除以所有成分。 我写了代码,但它打印的数字至少也只划分了一个成分:

$n = $_POST['inp'];
$numbers = range(0, $n);

foreach ($numbers as $value) {
    $value = (string)$value;
    if ( strpos($value,"0") !== false ) { continue; }
    for($i=0; $i<strlen($value);$i++) {
        if (($value % $value[$i]) == 0) { 
            echo  $value , "\n";        
            break;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

当余数 0时,考虑跳出循环。如果在最后一次循环($i == strlen($value)-1)中余数为0,那么你就会知道每个组成数字的余数为0。在代码中:

if (($value % $value[$i]) != 0) {
    break;
} else if ($i == strlen($value)-1) {
    echo  $value , "\n";
}

还有其他方法可以解决这个问题,但这是最接近现有代码的方法。