15.01 Деление без остатка
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Решение руками:
Введем обозначения:
Таким образом истиным для всех должно быть выражение
.Упростим это выражение, раскрыв
импликацию:
.
Из этой формулы видно, что множество должно перекрыть множество, которое не перекрыто множеством
. Множество
– это множество всех чисел, которые не делятся одновлеменно на 14 и 21.
Поэтому чтобы найти наименьшее
необходимо найти наименьшее общее кратное чисел 14 и 21 – это
42.
Решение программой:
Для нахождения наименьшего натурального числа , при котором формула
тождественно истинна для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
. Для каждого
перебираем
от
до
и проверяем
истинность формулы. Если хотя бы для одного
выражение оказывается ложным, текущее
отбрасываем.
Так как нам нужно минимальное
, поиск прекращаем сразу после нахождения первого подходящего
значения.
for a in range(1, 1500): # Переменная-флаг, # которой присваивается 1, если хотя бы одно выражение выдаёт ложь f = 0 for x in range(1, 5000): # Если выражение ложно(нам нужны только истинные), # то приостанавливаем цикл if ((x % a == 0) <= ((x % 14 == 0) and (x % 21 == 0))) == False: f = 1 break # Так как ищем минимальное значение, # то сразу же после его нахождения прерываем цикл if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(,
) утверждение «натуральное число
делится без остатка на натуральное число
».
Для какого наименьшего натурального числа
формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной
)?
Решение руками:
Введем обозначения:
Таким образом истиным для всех должно быть выражение
. Упростим это выражение, раскрыв
импликацию:
.
Из этой формулы видно, что множество должно перекрыть множество, которое не перекрыто
множеством
. Множество
– это множество всех чисел, которые делятся одновременно на 19 и 15.
Поэтому чтобы найти наименьшее
необходимо найти наименьшее общее кратное чисел 15 и 19 – это
285.
Решение программой:
Для нахождения наименьшего натурального числа , при котором формула
тождественно истинна для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
. Для каждого
перебираем
от
до
и проверяем
истинность формулы. Если хотя бы для одного
выражение оказывается ложным, текущее
отбрасываем.
Так как нам нужно минимальное
, поиск прекращаем сразу после нахождения первого подходящего
значения.
# перебор возможных значений A от 1 до 299 for a in range(1, 300): # переменная-флаг: 0 - формула истинна для всех x, 1 - хотя бы один x нарушает f = 0 # перебор всех x от 1 до 499 for x in range(1, 500): # проверка формулы для текущего x и A if (((x % 19 != 0) or (x % 15 != 0)) <= (x % a != 0)) == False: # если формула ложна, отмечаем и прекращаем проверку для этого A f = 1 break # если формула истинна для всех x, выводим найденное минимальное A if f == 0: print(a)
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(,
) утверждение «натуральное число
делится без остатка на натуральное число
».
Для какого наибольшего натурального числа
формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной
)?
Решение руками:
Введем обозначения:
Таким образом истиным для всех должно быть выражение
. Упростим это выражение, раскрыв
импликации:
.
Из этой формулы видно, что множество должно перекрыть множество, которое не перекрыто множеством
. Предположим, что
, отсюда
, значит, множество
ложно, когда число делится и
на 24, и на 77. Найдем НОК чисел 24 и 72, оно равно 72. Значит число 72 должно делиться на А без остатка, тогда
наибольшее возможное А это 72.
Решение программой:
Для нахождения наибольшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
. Для каждого
перебираем все
от
до
и вычисляем формулу.
Если хотя бы для одного
выражение оказалось ложным, текущее
отбрасываем. Если формула
выполняется для всех
, сохраняем найденное значение. В конце получаем наибольшее подходящее
.
# перебор возможных значений A от 1 до 199 for a in range(1, 200): # флаг: 0 - формула выполняется для всех x, 1 - хотя бы один x нарушает f = 0 # перебор всех x от 1 до 499 for x in range(1, 500): # проверяем выполнение логического выражения при данных x и A if ((x % 24 == 0) <= ((x % 72 == 0) <= (x % a == 0))) == False: # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку f = 1 break # если формула выполняется для всех x, выводим найденное A if f == 0: print(a)
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ утверждение «натуральное число
делится без остатка на натуральное число
». Для
какого наименьшего натурального числа
формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной
)?
Решение программой:
Для нахождения наименьшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверять все значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
. На
каждом шаге вычисляем логическое выражение. Если хотя бы для одного
выражение оказалось ложным, данное
исключается. Если выражение истинно для всех
, найденное
является минимально подходящим, и цикл
завершается.
# перебор возможных значений A от 1 до 199 for a in range(1, 200): # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение f = 0 # перебор всех x от 1 до 499 for x in range(1, 500): # проверяем выполнение логического выражения при данных x и A if (((x % a == 0) and not (x % 22 == 0)) <= \ ((x % 40 == 0) or (x % 15 == 0))) == False: # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку f = 1 break # если формула выполняется для всех x, найдено наименьшее подходящее A if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(,
) утверждение «натуральное число
делится без остатка на натуральное число
».
Для какого наибольшего натурального числа
формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной
)?
Решение руками:
Введем обозначения:
Таким образом истиным для всех должно быть выражение
.Упростим это выражение, раскрыв
импликацию:
.
Из этой формулы видно, что множество должно перекрыть множество, которое не перекрыто множеством
. Предположим, что
, отсюда
, значит, множество
ложно, когда число делится и
на 45, и на 70. Найдем НОК чисел 45 и 70, оно равно 630. Значит 630 должно делиться на А без остатка, тогда
наибольшее возможное А это 630.
Решение программой:
Для нахождения наибольшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
.
На каждом шаге вычисляем логическое выражение. Если хотя бы для одного
выражение оказалось ложным,
текущее
исключается. Если же выражение истинно для всех
, то такое
подходит. В конце работы алгоритма
наибольшее найденное
будет являться ответом.
# перебор возможных значений A от 1 до 999 for a in range(1, 1000): # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение f = 0 # перебор всех x от 1 до 1499 for x in range(1, 1500): # проверяем выполнение логического выражения при данных x и A if (((x % 45 == 0) and (x % 70 == 0)) <= (x % a == 0)) == False: # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку f = 1 break # если формула выполняется для всех x, выводим найденное A if f == 0: print(a)
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Решение руками
Обозначим элементы выражения как:
ДЕЛ(x,A) – A
ДЕЛ(x,34) – 34
ДЕЛ(x,51) – 51
Тогда запишем выражение:
Упростим выражение:
Данное выражение должно равняться 1. Найдем случаи, когда известная часть равна 1, а часть с А - 0:
Получается, что максимальное значение А равно НОК(34,51) = 102.
Решение программой:
Для нахождения наименьшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверять все возможные значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
. На каждом шаге вычисляем логическое выражение. Если хотя бы для одного
формула ложна, текущее
исключается. Если формула оказывается истинной для всех
, то такое
является подходящим. Так как
требуется найти минимальное
, алгоритм завершает работу при первой же удачной проверке. В конце работы
программы найденное
будет являться ответом.
# перебор возможных значений A от 1 до 999 for a in range(1, 1000): # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение f = 0 # перебор всех x от 1 до 1999 for x in range(1, 2000): # проверяем выполнение логического выражения при данных x и A if ((x % a == 0) <= ((x % a == 0) <= ((x % 34 == 0) and (x % 51 == 0)))) == False: # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку f = 1 break # если формула выполняется для всех x, выводим найденное минимальное A if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа A формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Решение программой:
Для нахождения наибольшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
с помощью цикла for. Для каждого
перебираем все значения
от
до
. На каждом шаге вычисляем логическое выражение. Если хотя бы для одного
формула
оказывается ложной, текущее
исключается. Если формула остаётся истинной для всех
, то это
является подходящим. Так как требуется найти наибольшее
, программа проходит весь диапазон и
фиксирует максимальное значение, при котором условие выполняется. В конце работы найденное
является
ответом.
# перебор возможных значений A от 1 до 1499 for a in range(1, 1500): # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение f = 0 # перебор всех x от 1 до 4999 for x in range(1, 5000): # проверка логического выражения при текущих a и x if ((a < 500) and ((x % 5 == 0) <= ((x % a == 0) or (x % 25 == 0)))) == False: # если формула оказалась ложной, фиксируем нарушение и прерываем цикл f = 1 break # если выражение истинно для всех x, выводим наибольшее подходящее A if f == 0: print(a)
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Решение программой:
Для нахождения наименьшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
начиная с
с помощью цикла for. Для каждого
перебираем все значения
от
до
. На каждом шаге вычисляем логическое выражение. Если хотя бы для одного
формула оказывается
ложной, текущее
исключается. Так как требуется найти минимальное
, программа завершает
перебор сразу после нахождения первого подходящего значения. В конце работы найденное
является
ответом.
# перебор возможных значений A начиная с 1 for a in range(1, 1000): # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение f = 0 # перебор всех x от 1 до 1000 for x in range(1, 1001): # проверка логического выражения при текущих a и x if ((a % 12 == 0) and ((530 % x == 0) <= ((a % x != 0) <= (170 % x != 0)))) == False: # если формула оказалась ложной, фиксируем нарушение и прерываем цикл f = 1 break # если выражение истинно для всех x, выводим минимальное подходящее A и прерываем перебор if f == 0: print(a) break
Получается ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ утверждение «натуральное число
делится без остатка на натуральное число
». Для
какого наибольшего натурального числа
формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной
)?
Решение руками
Обозначим элементы выражения как:
ДЕЛ(x,A) – A
ДЕЛ(x,15) – 15
ДЕЛ(x,18) – 18
Тогда запишем выражение:
Упростим выражение:
Данное выражение должно равняться 1. Найдем случаи, когда известная часть равна 0, а часть с А - 1, для этого отрицаем известную часть и ищем когда она равна 1:
Получается, что максимальное значение А равно НОК(18,15) = 90.
Решение программой:
Для нахождения наибольшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том,
чтобы проверять все возможные значения
от
до
с помощью цикла for. Для каждого
перебираем все значения
от
до
. На каждом шаге вычисляем логическое выражение. Если
хотя бы для одного
формула оказывается ложной, текущее
отбрасываем. Если же выражение
выполняется для всех
, текущее
является подходящим кандидатом. Так как требуется найти наибольшее
, программа продолжает перебор до конца диапазона и в итоге выводит максимальное найденное
значение.
# перебор возможных значений A от 1 до 999 for a in range(1, 1000): # флаг: 0 - выражение выполняется для всех x, 1 - найдено нарушение f = 0 # перебор всех x от 1 до 1000 for x in range(1, 1001): # проверка логического выражения при текущих a и x if (((x % a != 0) and (x % 15 == 0)) <= ((x % 18 != 0) or (x % 15 != 0))) == False: # если выражение оказалось ложным, фиксируем нарушение и прерываем цикл f = 1 break # если выражение истинно для всех x, выводим текущее подходящее A if f == 0: print(a)
Получился ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ утверждение «натуральное число
делится без остатка на натуральное число
». Для
какого наименьшего натурального числа
формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной
)?
Решение руками
Обозначим элементы выражения как:
ДЕЛ(x,A) – A
ДЕЛ(x,13) – 13
ДЕЛ(x,19) – 19
Тогда запишем выражение:
Упростим выражение:
Данное выражение должно равняться 1. Найдем случаи, когда известная часть равна 1, а часть с отрицанием А - 0:
Получается, что максимальное значение А равно НОК(19,13) = 247.
Решение программой:
Для нахождения наименьшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверять все значения
от
до
с помощью цикла for. Для каждого
перебираем все значения
от
до
. На каждом шаге вычисляем логическое выражение. Если хотя бы для одного
формула оказывается ложной,
текущее
отбрасывается. Если же выражение выполняется для всех
, текущее
является подходящим
кандидатом. Так как требуется найти наименьшее
, программа останавливает перебор при первой же удачной
проверке и выводит найденное значение.
# перебор возможных значений A от 1 до 999 for a in range(1, 1000): # флаг: 0 - выражение выполняется для всех x, 1 - найдено нарушение f = 0 # перебор всех x от 1 до 1000 for x in range(1, 1001): # проверка логического выражения при текущих a и x if (((x % 19 != 0) or (x % 13 != 0)) <= (x % a != 0)) == False: # если выражение оказалось ложным, фиксируем нарушение и прерываем цикл f = 1 break # если выражение истинно для всех x, выводим текущее минимальное A и завершаем программу if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(,
) утверждение «натуральное число
делится без остатка на натуральное число
».
На числовой прямой дан отрезок . Для какого наибольшего натурального числа
формула
тождественно истинна (то есть принимает значение при любом натуральном значении переменной
)?
Решение руками:
Раскроем импликацию:
Рассмотрим известную часть. Высказывание дает истину на множетсве
.
Всказываение
достаточно рассмотреть только на множестве, где высказываение
дает
ложь; на отрезке
все числа, кроме 50, не делятся на 10, то есть дают истину для высказывания
.
Из этих рассуждений можно сделать вывод, что высказывание должно давать истину как минимум для
значения 50, чтобы все выражение было тождествено истинна. Тогда, наибольшим
для которого будет выполняться
выражение
является
.
Решение программой:
Для нахождения наибольшего целого , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
. На
каждом шаге вычисляем логическое выражение. Если хотя бы для одного
формула оказывается ложной, текущее
отбрасывается. Если же формула истинна для всех
, обновляем максимальное найденное значение
. В конце цикла это
значение и будет искомым наибольшим
.
# функция проверяет выполнение выражения при данных x и A def f(x, A): B = [45, 55] return (x % A != 0) <= (inn(x, B) <= (x % 10 != 0)) # функция проверяет принадлежность x отрезку B def inn(x, B): return B[0] <= x <= B[1] # переменная для хранения наибольшего подходящего A maxim = 0 # перебор возможных значений A от 1 до 299 for A in range(1, 300): # флаг: True - выражение выполняется для всех x, False - найдено нарушение flag = True # перебор всех x от 1 до 499 for x in range(1, 500): # если выражение ложно хотя бы для одного x, фиксируем нарушение if not(f(x, A)): flag = False break # если выражение истинно для всех x, обновляем максимум if flag: maxim = A # выводим наибольшее подходящее A print(maxim)
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Сколько существует натуральных значений A на отрезке [1;1000], при которых формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Решение программой:
Для нахождения количества натуральных значений на отрезке
, при которых выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
.
На каждом шаге проверяем логическую формулу. Если хотя бы для одного
формула оказывается ложной, текущее
отбрасывается. Если же формула истинна для всех
, добавляем
в список подходящих значений. В конце
цикла длина списка и будет количеством подходящих
.
# список для хранения всех подходящих A cnt = [] # перебор всех натуральных A от 1 до 1000 for a in range(1, 1001): # флаг: True - выражение выполняется для всех x, False - хотя бы один случай нарушает flag = True # перебор всех x от 1 до 10000 for x in range(1, 10001): # если выражение ложно для текущего x, фиксируем нарушение if ((a % 7) == 0 and ((240 % x) != 0 or ((a % x) == 0 or (780 % x) != 0))) == False: flag = False break # если выражение истинно для всех x, добавляем A в список if flag == True: cnt.append(a) # выводим количество подходящих A print(len(cnt))
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ утверждение «натуральное число
делится без остатка на натуральное число
». Для
какого наименьшего натурального числа
формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной
)?
Решение программой:
Для нахождения наименьшего натурального числа , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
и проверяем истинность формулы. Если хотя бы для одного
формула оказывается ложной, текущее
отбрасываем. Если же формула истинна для всех
, сразу выводим это значение
, так как ищем
минимальное.
# перебор всех натуральных A от 1 до 1000 for a in range(1, 1001): # флаг: True - выражение выполняется для всех x, False - хотя бы один случай нарушает flag = True # перебор всех x от 1 до 10000 for x in range(1, 10001): # проверка истинности формулы для текущего x if ((a % 9 == 0) and ((280 % x == 0 ) <= ((a % x != 0) <= (730 % x != 0)))) == False: # если выражение ложно, фиксируем нарушение flag = False break # если формула истинна для всех x, выводим минимальное A и прекращаем поиск if flag == True: print(a) break
Получается ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула
тождественно истинна, то есть принимает значение 1 при любом значении переменной х.
Решение руками:
Раскроем выражение:
Отрицаем известную часть и получаем, что
То есть x делится на 7 и не делится на 3. Это числа: 7, 14, 28, 35, 49...
Получаем, что наименьшее А, при котором выражение верно: , значит,
, то есть
.
Решение программой:
Решение: Для нахождения наименьшего натурального числа , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
и проверяем истинность формулы. Если хотя бы для одного
формула оказывается ложной,
текущее
отбрасываем. Если формула истинна для всех
, выводим это значение
, так как ищем
минимальное.
# перебор всех натуральных A от 1 до 999 for a in range(1, 1000): c = 0 # флаг: 0 - выражение выполняется для всех x, 1 - хотя бы один случай нарушает # перебор всех x от 1 до 999 for x in range(1, 1000): # проверка истинности формулы для текущего x if (((x % 3 != 0) <= (x % 7 != 0)) or (x + a > 120)) == False: # если выражение ложно, фиксируем нарушение c = 1 break # выход из цикла по x, так как A не подходит # если выражение истинно для всех x, выводим минимальное A и прекращаем поиск if c == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула
тождественно истинна, то есть принимает значение 1 при любом значении переменной х.
Решение руками:
Раскроем выражение:
Отрицаем известную часть:
Получаем, что число х должно делится и на 4, и на 6. Это числа 12, 24, 36, 48 и так далее.
Значит, минимальное значение .
Решение программой:
Для нахождения наибольшего натурального числа , при котором выражение
тождественно истинно для всех натуральных , используем программный перебор. Идея заключается в том, чтобы
проверить все значения
от
до
с помощью цикла for. Для каждого
перебираем все
от
до
и проверяем истинность формулы. Если хотя бы для одного
формула оказывается ложной,
текущее
отбрасываем. Если формула истинна для всех
, обновляем максимальное найденное значение
. В конце цикла максимальное значение
будет наибольшим, для которого формула тождественно
истинна.
# перебор всех натуральных A от 1 до 999 for a in range(1, 1000): c = 0 # флаг: 0 - выражение выполняется для всех x, 1 - хотя бы один случай нарушает # перебор всех x от 1 до 999 for x in range(1, 1000): # проверка истинности формулы для текущего x if (((x % 4 == 0) <= (not(x % 6 == 0))) or (x % a == 0)) == False: # если выражение ложно, фиксируем нарушение c = 1 break # выход из цикла по x, так как A не подходит # если выражение истинно для всех x, выводим текущий A if c == 0: print(a) # вывод наибольшего подходящего A
Получаем ответ: