Чтобы решить эту задачу на PHP, напишем программу, которая будет проверять каждый номер от 1 до N на выполнение двух условий: число должно оканчиваться на 7 и произведение его цифр должно быть меньше 9.
Вот пример кода, который выполняет эти условия:
<?php
function productOfDigits($number) {
$product = 1;
while ($number > 0) {
$digit = $number % 10;
$product *= $digit;
$number = intval($number / 10);
}
return $product;
}
function countValidNumbers($N) {
$count = 0;
for ($i = 1; $i <= $N; $i++) {
if ($i % 10 == 7 && productOfDigits($i) < 9) {
$count++;
}
}
return $count;
}
$N = intval(readline("Введите натуральное число N (N <= 10000): "));
$result = countValidNumbers($N);
echo "Количество чисел от 1 до $N, удовлетворяющих условиям: $result\n";
?>
В процессе выполнения этой программы:
- Функция
productOfDigitsпринимает число и вычисляет произведение его цифр. - Функция
countValidNumbersперебирает числа от 1 до N и проверяет, оканчивается ли число на 7 и меньше ли произведение его цифр 9. Если оба условия выполняются, счётчик увеличивается. - Затем выводится общее количество таких чисел.
Для числа 10000 программа посчитает:
- Числа от 1 до 10000, оканчивающиеся на 7: 7, 17, 27, 37, 47, 57, 67, 77, 87, 97, 107, …, 9997.
- Проверяя каждое число, найдётся только 7 и 17, так как произведение цифр других чисел превышает 9.
Таким образом, итоговое количество чисел от 1 до 10000, удовлетворяющих условиям, равно 2.
