Помогите решить задачу пожалуйста!
Напишите программу, которая вычисляет количество чисел от 1 до N (включая), удовлетворяющих хотя бы одному из двух условий:
число делится на 11;
сумма цифр числа делится на 11.
N вводится пользователем с клавиатуры.
Входные данные:
Вводится натуральное число N <= 10000.
Выходные данные:
Количество чисел от 1 до N, удовлетворяющих хотя бы одному из двух условий:
число делятся на 11;
сумма цифр числа делится на 11.
Так, например, если программе на вход подать число 20, она должна вывести число 1, т.к. от 1 до 20 только 11 удовлетворяет условию задачи.
Сумма цифр натурального числа $k считается в PHP намного проще:
array_sum(str_split($k))
Весь код, решающий задачу:
fscanf(STDIN, "%d", $n);
echo array_reduce(
range(1, $n), fn($p, $v) => $p + !(($v * array_sum(str_split($v))) % 11), 0
);
<?php
function sumOfDigits($num) {
$sum = 0;
while ($num > 0) {
$sum += $num % 10;
$num = (int)($num / 10);
}
return $sum;
}
echo "Введите число N: ";
fscanf(STDIN, "%d\n", $N); // Считывание N с клавиатуры
$count = 0;
for ($i = 1; $i <= $N; $i++) {
if ($i % 11 == 0 || sumOfDigits($i) % 11 == 0) {
$count++;
}
}
echo "Количество чисел от 1 до $N, удовлетворяющих условиям: $count";
?>
N = int(input("Введите число до которого будет идти проверка чисел: "))
count = 0
if N <= 10000:
for i in range(N+1):
a = i % 10
b = i % 100 // 10
c = i % 1000 // 100
d = i % 10000 // 1000
e = i % 100000 // 10000
f = a+b+c+d+e
if i >= 11 and (i % 11 == 0 or f % 11 == 0):
count += 1
print(count)