Тема 25. Обработка целочисленной информации

25.05 Прочие прототипы

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка целочисленной информации
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 21#22906Максимум баллов за задание: 1

Найдите все натуральные числа, N, принадлежащие отрезку [200 000 000; 600 000 000], которые можно представить в виде N  = 4m ⋅5n,  где m – чётное число, n – нечётное число. В ответе запишите все найденные числа в порядке возрастания через пробел.

Показать ответ и решение
for m in range(0, 1000, 2): # перебор чётных степеней для 4
    for n in range(1, 1000, 2): # перебор нечётных степеней для 5
        N = 4**m * 5**n
        if 200_000_000 <= N <= 600_000_000:
            print(N)

Ответ: 204800000 320000000 500000000

Ошибка.
Попробуйте повторить позже

Задача 22#24943Максимум баллов за задание: 1

Найдите все натуральные числа, N, принадлежащие отрезку [100 000 000; 500 000 000], которые можно представить в виде N  = 3m ∗ 7n  , где m – нечётное число, n — чётное число. В ответе запишите все найденные числа в порядке возрастания, а справа от каждого числа — сумму m+n, разделяя все числа пробелом.

Показать ответ и решение
ans = []
for i in range(1, 101, 2): # перебор нечётных степеней для 3
    for j in range(0, 100, 2): # перебор чётных степеней для 7
        N = 3**i*7**j
        if 100000000 <= N <= 500000000: # проверка, что число удовлетворяет условию
            ans.append([N, i+j])
ans = sorted(ans)
for i in range(len(ans)):
    print(*ans[i])

Ответ: 129140163 17 155649627 11 257298363 13 425329947 15

Ошибка.
Попробуйте повторить позже

Задача 23#25623Максимум баллов за задание: 1

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [10000; 90000], числа в которых сумма второй и четвёртой цифры равны сумме первой, третьей и пятой цифрам. Программа должна вывести количество таких чисел.

Показать ответ и решение
counter = 0
for i in range(10000, 90001):
    t = str(i)
    if int(t[1]) + int(t[3]) == int(t[0]) + int(t[2]) + int(t[4]): # проверка по условию
        counter += 1
print(counter)

Ответ: 3950

Ошибка.
Попробуйте повторить позже

Задача 24#25998Максимум баллов за задание: 1

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [164925;623594]  , числа кратные двум или трем, но не кратные одновременно и двум, и трём. Выведите количество таких чисел.

Показать ответ и решение
counter = 0
for i in range(164925, 623594+1):
    if (i % 2 == 0 or i % 3 == 0) and not(i % 2 == 0 and i % 3 == 0):
        counter += 1
print(counter)

Ответ: 229335

Ошибка.
Попробуйте повторить позже

Задача 25#26131Максимум баллов за задание: 1

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [175256;196429]  , числа кратные 57  или 19  , но не кратные одновременно и 57  и 19  . Выведите количество таких чисел.

Показать ответ и решение
count = 0
for i in range(175256, 196429+1):
    if (i % 57 == 0 and i % 19 != 0) or (i % 57 != 0 and i % 19 == 0):
        count += 1
print(count)

Ответ: 743

Ошибка.
Попробуйте повторить позже

Задача 26#27896Максимум баллов за задание: 1

Найдите все натуральные числа N  , принадлежащие числовому отрезку [200 000 000;600 000 000], которые можно представить в виде N = 4m ⋅5n  . Программа должна вывести количество таких чисел.

Показать ответ и решение
def inside(x, a): # функция, которая проверяет находится ли число в промежутке
    if x>=a[0] and x <= a[1]:
        return True
    return False

# Наш промежуток
a = [200000000, 600000000]
ans = 0
# так как 4**15 > 600 000 000
for m in range(15):
    # так как 5**13 > 600 000 000
    for n in range(13):
        if inside(4**m * 5**n, a):
            ans += 1
print(ans)

Ответ: 10

Ошибка.
Попробуйте повторить позже

Задача 27#27897Максимум баллов за задание: 1

Найдите все натуральные числа N  , принадлежащие числовому отрезку [200000000;400000000]  , которые можно представить в виде N = 2m ⋅3n  , где m  - четное число, n  - нечетное число. Программа должна вывести количество таких чисел.

Показать ответ и решение
def inside(x, a): # функция, которая проверяет находится ли число в промежутке
    if x>=a[0] and x <= a[1]:
        return True
    return False

# Наш промежуток
a = [200000000, 400000000]
ans = 0
# так как 2**29 > 400 000 000
for m in range(0,29,2): # Так как четные
    # так как 3**19 > 400 000 000
    for n in range(1, 19, 2): # Так как нечетные
        if inside(2**m * 3**n, a):
            ans += 1
print(ans)

Ответ: 4

Ошибка.
Попробуйте повторить позже

Задача 28#27898Максимум баллов за задание: 1

Найдите все натуральные числа N  , принадлежащие числовому отрезку [100 000 000;600 000 000], которые можно представить в виде N = 5m ⋅7n  , где m  - нечетное число, n  - четное число. Программа должна вывести количество таких чисел.

Показать ответ и решение
def inside(x, a): # функция, которая проверяет находится ли число в промежутке
    if x>=a[0] and x <= a[1]:
        return True
    return False

# Наш промежуток
a = [100000000, 600000000]
ans = 0
# так как 5**13 > 600 000 000
for m in range(1,13,2): # Так как нечетные
    # так как 7**19 > 600 000 000
    for n in range(0, 11, 2): # Так как четные
        if inside(5**m * 7**n, a):
            ans += 1
print(ans)

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 29#28821Максимум баллов за задание: 1

Найдите все натуральные числа N,  принадлежащие числовому отрезку [2 ⋅108;6 ⋅108],  которые можно представить в виде N  = 4m ⋅5n  (m,n - целые неотрицательные числа). Программа должна вывести количество таких чисел.

Показать ответ и решение
ans = 0
for m in range(100):
    for n in range(100):
        N = 4 ** m * 5 ** n
        if 2 * 10 ** 8 <= N <= 6 * 10 ** 8:
            ans += 1
print(ans)

Ответ: 10

Ошибка.
Попробуйте повторить позже

Задача 30#29372Максимум баллов за задание: 1

Пусть M (k) = 9000000+ k  , где k  — натуральное число. Найдите пять наименьших значений k  , при которых M (k)  нельзя представить в виде произведения трёх различных натуральных чисел, не равных 1  .

В ответе запишите найденные значения k  в порядке возрастания через пробел.

Показать ответ и решение
def count_divisors(n):
    count = 0
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            count += 1
            if i != n // i:
                count += 1
    return count

k_values = []
k = 1

while len(k_values) < 5:
    M_k = 9000000 + k
    divisors_count = count_divisors(M_k)
    if divisors_count < 3:
        k_values.append(k)
    k += 1

print(k_values)

Ответ: 1 7 11 14 17

Ошибка.
Попробуйте повторить позже

Задача 31#29793Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [2314; 8436], которые делятся на 43.

Найдите количество таких чисел.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Показать ответ и решение
ans = 0  
for i in range(2314, 8436 + 1):  
    if i % 43 == 0: ans += 1  
print(ans)

 

Ответ: 143

Ошибка.
Попробуйте повторить позже

Задача 32#29794Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [74246; 14653456], которые делятся на 2022.

Найдите количество таких чисел.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Показать ответ и решение
ans = 0  
for i in range(74246, 14653456 + 1):  
    if i % 2022 == 0: ans += 1  
print(ans)

Ответ: 7211

Ошибка.
Попробуйте повторить позже

Задача 33#29795Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [5352; 20463], которые делятся на 12 и не делятся на 11 и 66.

Найдите количество таких чисел и минимальное из них

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Показать ответ и решение
counter = 0  
minim = 10 ** 10  
for i in range(5352, 20463 + 1):  
    if i % 12 == 0 and i % 11 != 0 and i % 66 != 0:  
        counter += 1  
        minim = min(minim, i)  
print(counter, minim)

 

Ответ: 1145 5352

Ошибка.
Попробуйте повторить позже

Задача 34#29796Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [15462; 243743], которые делятся на 161 и не делятся на 13, 8.

Найдите количество таких чисел и максимальное из них

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Показать ответ и решение
counter = 0  
maxim = 0  
for i in range(15462, 243743 + 1):  
    if i % 161 == 0 and i % 13 != 0 and i % 8 != 0:  
        counter += 1  
        maxim = max(maxim, i)  
print(counter, maxim)

Ответ: 1145 243593

Ошибка.
Попробуйте повторить позже

Задача 35#29797Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [1532858; 1922980], которые делятся на 13 и не делятся на 21, 25, 41, 77.

Найдите количество таких чисел и минимальное из них.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Показать ответ и решение
counter = 0  
minim = 10 ** 10  
for i in range(1532858, 1922980 + 1):  
    if i % 13 == 0 and i % 21 != 0 and i % 25 != 0 and i % 41 != 0 and i % 77 != 0:  
        counter += 1  
        minim = min(minim, i)  
print(counter, minim)

 

Ответ: 26524 1532869

Ошибка.
Попробуйте повторить позже

Задача 36#29798Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [15228; 84255], которые делятся на 2 и не делятся на 3, 4, 5, 6.

Найдите количество таких чисел и максимальное из них.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Показать ответ и решение
counter = 0  
maxim = 0  
for i in range(15228, 84255 + 1):  
    if i % 2 == 0 and i % 3 != 0 and i % 4 != 0 and i % 5 != 0 and i % 6 != 0:  
        counter += 1  
        maxim = max(maxim, i)  
print(counter, maxim)

Ответ: 9203 84254

Ошибка.
Попробуйте повторить позже

Задача 37#29799Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [3172; 9731], которые удовлетворяют следующим условиям:

— остаток от деления на 3 равен 1;

— остаток от деления на 8 равен 5.

Найдите количество таких чисел и их сумму.

Показать ответ и решение
counter = 0  
summa = 0  
for i in range(3172, 9731 + 1):  
    if i % 3 == 1 and i % 8 == 5:  
        counter += 1  
        summa += i  
print(counter, summa)

 

Ответ: 273 1759485

Ошибка.
Попробуйте повторить позже

Задача 38#29800Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [3712; 8432], которые удовлетворяют следующим условиям:

— запись в двоичной и четверичной системах счисления заканчивается одинаковой цифрой;

— кратны, по крайней мере, одному из чисел: 13, 14 или 15.

Найдите количество таких чисел и минимальное из них.

Показать ответ и решение
counter, minim = 0, 10 ** 10  
for i in range(3712, 8432 + 1):  
    if i % 2 == i % 4 and (i % 13 == 0 or i % 14 == 0 or i % 15 == 0):  
        counter += 1  
        minim = min(minim, i)  
print(counter, minim)

Ответ: 471 3720

Ошибка.
Попробуйте повторить позже

Задача 39#29801Максимум баллов за задание: 1

Рассматривается множество целых чисел, принадлежащих числовому отрезку [3721; 7752]. Необходимо найти числа, которые удовлетворяют следующим условиям:

— сумма цифр числа кратна 3;

— двоичная запись числа не заканчивается на 000.

Найдите количество таких чисел и минимальное из них.

Показать ответ и решение

Решение №1

counter = 0
mn = 10**10
for n in range(3721, 7752 + 1):
    s = sum(map(int, str(n)))
    bn = bin(n)[2:]
    if (s % 3 == 0) and bn[-3:] != "000":
        counter += 1
        mn = min(mn, n)
print(counter, mn)

Решение №2

counter = 0
mn = 10**10
for n in range(3721, 7752 + 1):
# Математический факт: сумма цифр кратна 3, когда само число кратно 3
    if n % 3 == 0:
     # 000 в конце 2-сс будет, только если число делится на 8
        if n % 8 != 0:
            counter += 1
            mn = min(mn, n)
print(counter, mn)

Ответ: 1176 3723

Ошибка.
Попробуйте повторить позже

Задача 40#30239Максимум баллов за задание: 1

Найдите все натуральные числа, N, принадлежащие отрезку [100 000 000; 500 000 000], которые можно представить в виде N  = 3∗∗m ∗ 7∗∗n  , где m – нечётное число, n — чётное число. В ответе запишите все найденные числа в порядке возрастания, а справа от каждого числа — сумму m+n.

Показать ответ и решение
ans = []
for i in range(1, 101, 2): # перебор чётных степеней для 3
    for j in range(0, 100, 2): # перебор нечётных степеней для 7
        N = 3**i*7**j
        if 100000000 <= N <= 500000000:
            ans.append([N, i+j])
ans = sorted(ans)
for i in range(len(ans)):
    print(*ans[i])

Ответ: 129140163 17 155649627 11 257298363 13 425329947 15
Рулетка
Вы можете получить скидку в рулетке!