Число X даёт остаток 1 при делении на 3, остаток 0 при делении на 2 и остаток 4 при делении на 5, значит, исходное число можно представить как X = 3a + 1 = 2b = 5c + 4 (числа a, b, c — натуральные или 0).
Рассмотрим равенство 2b = 5c + 4. Число 5c + 4 — чётное, значит, c также чётное (в противном случае мы получим произведение нечётных чисел, т. е. число нечётное, плюс чётное число — результат нечётный).
Рассмотрим равенство 5c + 4 = 3a + 1 ⇔ 5c = 3a - 3 = 3(a - 1) ⇒ число c делится на 3, но также c делится на 2 по равенству, значит, c делится на 6.
Сделаем последовательный перебор чисел c:
Если c = 0, то 5c + 4 = 4 < 10 — число не двузначное.Если c = 6, то 5c + 4 = 34. Действительно, 34 = 3·11 + 1 = 2·17 = 5·6 + 4
Можно (и несложно), конечно, было решить это задание программным методом (все-таки предмет информатика), но по-моему здесь куда более простое аналитическое решение.
На всякий случай вот рабочий код:
##
var r: integer := 1001;
for b: integer := 10 to 95 do
for e: integer := b+1 to 95 do
begin
var f: integer := 1;
for x: integer := 1 to 1000 do
if(((x in [20..95])<=((x in [10..41])<=(x in [b..e])))=false)
34
Объяснение:
Число X даёт остаток 1 при делении на 3, остаток 0 при делении на 2 и остаток 4 при делении на 5, значит, исходное число можно представить как X = 3a + 1 = 2b = 5c + 4 (числа a, b, c — натуральные или 0).
Рассмотрим равенство 2b = 5c + 4. Число 5c + 4 — чётное, значит, c также чётное (в противном случае мы получим произведение нечётных чисел, т. е. число нечётное, плюс чётное число — результат нечётный).
Рассмотрим равенство 5c + 4 = 3a + 1 ⇔ 5c = 3a - 3 = 3(a - 1) ⇒ число c делится на 3, но также c делится на 2 по равенству, значит, c делится на 6.
Сделаем последовательный перебор чисел c:
Если c = 0, то 5c + 4 = 4 < 10 — число не двузначное.Если c = 6, то 5c + 4 = 34. Действительно, 34 = 3·11 + 1 = 2·17 = 5·6 + 4Значит, 34 — наименьшее искомое двузначное число.
(см. объяснение)
Объяснение:
Тогда:
(см. прикрепленный файл)
Получили, что .
Поэтому ответом будет .
Задание выполнено!
Комментарий:
Можно (и несложно), конечно, было решить это задание программным методом (все-таки предмет информатика), но по-моему здесь куда более простое аналитическое решение.
На всякий случай вот рабочий код:
##
var r: integer := 1001;
for b: integer := 10 to 95 do
for e: integer := b+1 to 95 do
begin
var f: integer := 1;
for x: integer := 1 to 1000 do
if(((x in [20..95])<=((x in [10..41])<=(x in [b..e])))=false)
then f:= 0;
if((f=1) and (r>e-b))
then r:= e-b;
end;
print(r);