6.2 KiB
Решения задач с КЗН (Файл: КЗН_ИНФОРМАТИКА_май 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```
**Решение:**
```Python
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}")
№9. Ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры, стоящие рядом.
Пример:
Введите натуральное число:
12342
Нет. ```
```Пример:
Введите натуральное число:
12245
Да. ```
**Решение:**
```Python
n = input("Введите натуральное число: ")
for i in range(1, len(n)):
if n[i] == n[i-1]:
print("Да.")
break # Выходим из цикла
else: # Выполнится, если цикл завершился без break
print("Нет.")
№10. Ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры (не обязательно стоящие рядом).
Введите натуральное число:
12342
Да.```
```Пример:
Введите натуральное число:
12345
Нет. ```
**Решение:**
```Python
n = input("Введите натуральное число: ")
digits = []
unique_digits = set()
for digit in n:
"""
Добавляем элементы в список digits и множество unique_digits.
Последнее содержит только уникальные элементы, в отличии от списка.
Следовательно, если есть повторяющиеся числа, значит количество элементов в списке
и множетсве будет различным.
"""
digits.append(digit)
unique_digits.add(digit)
if len(digits) != len(unique_digits):
print("Да.")
else:
print("Нет.")