Лучшие помощники
10 декабря 2022 13:20
2373

1)Рассматривается множество целых чисел, принадлежащих числовому отрезку [3394; 8599], которые удовлетворяют следующим условиям:− остаток от деления на 3 равен 1;
− остаток от деления на 7 равен 5.
Найдите наибольшее из таких чисел и их сумму. Гарантируется, что искомая сумма не превосходит 107.
2) Рассматривается множество целых чисел, принадлежащих числовому отрезку [3712; 8432], которые удовлетворяют следующим условиям:
− запись в двоичной и четверичной системах счисления заканчивается одинаковой цифрой;
− кратны, по крайней мере, одному из чисел: 13, 14 или 15.
Найдите количество таких чисел и минимальное из них.
3)Рассматривается множество целых чисел, принадлежащих числовому отрезку [3439; 7410], которые удовлетворяют следующим условиям:
− запись в двоичной и шестеричной системах счисления заканчивается разными цифрами;
− кратны, по крайней мере, одному из чисел: 9, 10 или 11.
Найдите количество таких чисел и максимальное из них. ​

1 ответ
Посмотреть ответы
Программа:
Python:
№1)
max = summ = 0
for i in range(3394, 8599 + 1):
if i % 3 == 1 and i % 7 == 5:
max = i
summ += i
print(f'Максимальное число: \nСумма чисел: ')

№2)
def translate(num, base):
out = ""
while num > 0:
out = str(num % base) + out
num //= base
return int(out)

if __name__ == '__main__':
count, minimum, can = 0, 0, True

for i in range(3712, 8432 + 1):
if (translate(i, 2) % 10) == (translate(i, 4) % 10):
if i % 13 == 0 or i % 14 == 0 or i % 15 == 0:
count += 1
if can:
minimum = i
can = False
print(f'Таких чисел: \nМинимальное число: ')

№3)
def translate(num, base):
out = ""
while num > 0:
out = str(num % base) + out
num //= base
return int(out)

if __name__ == "__main__":
count, maximum = 0, 0

for i in range(3439, 7410 + 1):
if not (translate(i, 2) % 10) == (translate(i, 6) % 10):
if i % 9 == 0 or i % 10 == 0 or i % 11 == 0:
count += 1
maximum = i

print(f'Таких чисел: \nМаксимальное число: ')

Объяснение:
Код №1: регистрируем переменные max и summ, которые равны нулю. С помощью цикла for проходимся по всем числам от 3394 до 8599 (включительно) с шагом 1. Если остаток деления на 3 равен единице и если остаток деления на 7 равен пяти, то присваиваем переменной max значение текущего числа (таким способом число всегда получит текущее число, соответственно и максимальное). Также к значению переменной summ добавится значение i. В конце - вывод необходимых чисел.
Код №2: регистрируем функцию translate, которая будет переводить числа в различные системы счисления (от 2 до 9 включительно, но этих рамок хватает). С помощью условия if __name__ == "__main__" выполняем основной код. Регистрируем переменные для будущего использования, с помощью цикла проходимся по всем целым числам от 3712 до 8432 (включительно). Теперь по условию делаем две проверки: если при переводе в 2-ю СС остаток деления на 10 (это же и последнее число) равен остатку деления на 10 переведённого числа в 4-й СС (это же и последнее число), то увеличиваем значение count на единицу. И находим минимальное число путём введения новой переменной can: в начале мы записали True, но если изменится на False, то минимальному числу присвоится текущее значение i, переменная can стаёт False. В конце - вывод значений, необходимых по условию.
Код №3: код максимально похож на код №2, но теперь условие "запись в 2-й и 6-й СС заканчивается одним и тем же числом" имеет not (соответственно, отрицаем их равность), изменили основание СС для перевода (4 заменили на 6); заменили второе условие - равность хотя бы на 9, 10 или 11. Теперь переменная can не нужна, а максимальное число находится таким же путём, как и в коде №1. В конце - вывод согласно условию.

Результат:
Код №1:
Максимальное число: 8587
Сумма чисел: 1486388
Код №2:
Таких чисел: 471
Минимальное число: 3720
Код №3:
Таких чисел: 683
Максимальное число: 7407
0
·
Хороший ответ
12 декабря 2022 13:20
Остались вопросы?
Найти нужный