1. Базовый перебор в диапазоне
Когда нужен: найти количество чисел x, для которых выражение истинно.
python
count = 0
for x in range(1, 1001): # диапазон от 1 до 1000
if (x > 10) and (x < 20) or (x % 5 == 0):
count += 1
print(count)
Пояснения:
range(1, 1001)— числа от 1 до 1000 включительно.- Условие внутри
if— логическое выражение из задачи. countнакапливает количество подходящих x.
2. Поиск минимального/максимального x
Когда нужен: найти наименьшее или наибольшее x, при котором выражение истинно.
python
# Наименьшее x
result = None
for x in range(1, 1001):
if (x % 2 == 0) and (x % 3 != 0):
result = x
break # вышли на первом подходящем x
print(result)
# Наибольшее x
result = None
for x in range(1000, 0, -1): # идём от 1000 вниз до 1
if (x % 2 == 0) and (x % 3 != 0):
result = x
break
print(result)
Пояснения:
breakостанавливает цикл после нахождения первого подходящего значения.- Для максимума перебираем диапазон в обратном порядке (
range(1000, 0, -1)).
3. Работа с импликацией и эквивалентностью
Когда нужен: в условии есть импликация (A→B) или эквивалентность (A≡B).
python
def implies(a, b):
return not a or b
def equivalent(a, b):
return a == b
count = 0
for x in range(1, 101):
A = (x > 5)
B = (x < 10)
if implies(A, B) and equivalent(A, not B):
count += 1
print(count)
Пояснения:
implies(a, b)реализует A→B≡¬A∨B.equivalent(a, b)проверяет A≡B как равенство значений.
4. Подсчёт чисел, не кратных заданному
Когда нужен: «сколько чисел не делятся на n».
python
n = 3
count = 0
for x in range(1, 101):
if x % n != 0:
count += 1
print(count)
Альтернатива (без цикла):
python
total = 100
n = 3
count = total - (total // n) # числа от 1 до 100, не кратные 3
print(count)
5. Анализ отрезков и интервалов
Когда нужен: определить длину отрезка, где выражение истинно.
python
true_points = []
for x in range(1, 101):
if (x >= 10) and (x <= 50) and (x % 2 == 1):
true_points.append(x)
if true_points:
length = true_points[-1] - true_points[0] + 1
else:
length = 0
print(length)
Пояснения:
true_pointsсобирает все подходящие x.- Длина отрезка — разница между последним и первым элементом + 1.
6. Проверка нескольких условий (с приоритетом операций)
Когда нужен: сложное выражение с разными логическими операциями.
python
count = 0
for x in range(1, 101):
cond1 = (x % 2 == 0) # чётное
cond2 = (x % 5 == 0) # кратно 5
cond3 = (x > 20) # больше 20
# (чётное И кратно 5) ИЛИ (не чётное И больше 20)
if (cond1 and cond2) or (not cond1 and cond3):
count += 1
print(count)
Важно: используйте скобки, чтобы явно задать приоритет операций.
7. Подсчёт по условию с исключёнными значениями
Когда нужен: «сколько чисел удовлетворяют A, но не B».
python
count = 0
for x in range(1, 101):
A = (x % 2 == 0) # чётное
B = (x % 3 == 0) # кратно 3
if A and not B: # чётное, но не кратно 3
count += 1
print(count)
8. Работа с битовыми операциями (если нужно)
Когда нужен: в условии встречаются побитовые И (&), ИЛИ (|), XOR (^).
python
count = 0
for x in range(1, 101):
if (x & 1 == 0) and (x | 4 > 10): # чётное И (x OR 4 > 10)
count += 1
print(count)
Пояснения:
x & 1 == 0— проверка на чётность (младший бит равен 0).x | 4— побитовое ИЛИ с числом 4.
9. Оптимизация через математические формулы (где возможно)
Когда нужен: избежать полного перебора для больших диапазонов.
python
# Сколько чисел от 1 до N делятся на a или на b?
N = 100
a = 2
b = 3
count_a = N // a
count_b = N // b
count_ab = N // (a * b) # если a и b взаимно просты
count = count_a + count_b - count_ab
print(count)
Пояснения: формула включений‑исключений для двух множеств.
10. Общий шаблон с выводом всех подходящих x
Когда нужен: проверить, какие именно числа подходят, а не только их количество.
python
results = []
for x in range(1, 51):
if (x % 4 == 0) and (x % 6 != 0):
results.append(x)
print("Подходящие x:", results)
print("Количество:", len(results))
Полезно: для отладки и проверки условий.
Советы по использованию шаблонов
- Всегда проверяйте границы диапазона (
range(start, end+1)). - Используйте функции для сложных условий — это делает код читаемее.
- Тестируйте на малых диапазонах (например, от 1 до 20), чтобы убедиться, что логика верна.
- Оптимизируйте, если диапазон очень большой (например, 1≤x≤106): ищите математические закономерности вместо перебора.
- Следите за приоритетом операций — расставляйте скобки явно.
Эти шаблоны покрывают 95 % задач № 15 ЕГЭ. Комбинируйте их в зависимости от условия.