Files
gkl_test_week/README.md
2023-05-27 22:13:17 +07:00

2.8 KiB
Raw Blame History

Решения задач с КЗН (Файл: КЗННФОРМАТИКАай 2023.docx)

№1. Найдите все пятизначные числа, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111.
Решение:

for i in range(10_000, 99_999):
    if i % 133 == 125 and i % 134 == 111:
        print(i)

№2 Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ную степень (где N количество цифр в числе) равна самому числу. Например, 153 = 13 + 53 + 33. Найдите все трёхзначные Армстронга.
Решение:

print("3-x значные числа Армстронга:")
for i in range(100, 999):
    s = 0
    n = i
    while n > 0:
        decimal = n%10
        s += decimal**3
        n = n//10
    if s == i:
        print(i)

№3. Натуральное число называется автоморфным, если оно равно последним цифрам своего квадрата. Например, 252 = 625. Напишите программу, которая получает натуральное число N и выводит на экран все автоморфные числа, не превосходящие N.
Решение:

print("Введите N:")
n = int(input())
for i in range(1, n):
    num = str(i)
    num2 = str(i**2)
    if num2[-len(num)::] == num: # см. слайсы
        print(f"{num}*{num}={num2}")

№4. Напишите программу, которая получает два целых числа A и B (0 < A < B) и выводит квадраты всех натуральных чисел в интервале от A до B.
Решение:

print("Введите два целых числа:")
a, b = input().split(" ")
a, b = int(a), int(b)
for i in range(a, b+1):
    print(f"{i}*{i}={i**2}")

№5. Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными.
Пример:
Введите два числа:
10 -15
10*(-15)=-150
Решение:

print("Введите два целых числа:")
a, b = input().split(" ")
a, b = int(a), int(b)

if b == 0:
    res = 0
else:
    res = int( a/(1/b) )

if b >= 0:
    print(f"{a}*{b}={res}")
else:
    print(f"{a}*({b})={res}")