diff --git a/README.md b/README.md index 89e6669..bc4440f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ 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. Найдите все трёхзначные Армстронга. +**№2.** Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ную степень (где N – количество цифр в числе) равна самому числу. Например, 153 = 13 + 53 + 33. Найдите все трёхзначные Армстронга. **Решение:** ```Python print("3-x значные числа Армстронга:") @@ -42,9 +42,9 @@ for i in range(a, b+1): ``` **№5.** Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными. Пример: -Введите два числа: +```Введите два числа: 10 -15 -10*(-15)=-150 +10*(-15)=-150``` **Решение:** ```Python print("Введите два целых числа:") @@ -60,4 +60,105 @@ if b >= 0: print(f"{a}*{b}={res}") else: print(f"{a}*({b})={res}") +``` + +
№6.
(не будет на КЗН) Ввести натуральное число N и вычислить сумму всех чисел Фибоначчи, меньших N. Предусмотрите защиту от ввода отрицательного числа N. +Пример: +```Введите число N: +10000 +Сумма 17709``` +**Решение:** +```Python +n = int(input("Введите число N: ")) +if n <= 0: + print("Программа принимает только натуральное число N") + exit(0) +f1, f2 = 1, 2 +s = 0 +while f1 < n: + s += f1 + f1, f2 = f2, f1+f2 +print("Сумма", s) +``` +
№7.
(не будет на КЗН) Дано натуральное число n. Вычислить: +$$ +(1+{1 \over 1_^2^})*(1+{1 \over 2_^2^}) ... (1+{1 \over n_^2^}) +$$ +**Решение:** +```Python +n = int(input("Введите число N: ")) +if n <= 0: + print("Программа принимает только натуральные числа N") + exit(0) +m = 1 +for i in range(1, n+1): + m *= (1 + 1/i**2) +print(f"Произведение: {m}") +``` +**№8.** Ввести натуральное число и найти сумму его цифр. +Пример: +```Введите натуральное число: +12345 +Сумма цифр 15.``` +**Решение:** +```Python +n = int(input("Введите число N: ")) +s = 0 +while n > 0: + digit = n % 10 + s += digit + n //= 10 +print("Сумма цифр", s) ``` + +**№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("Нет.") +``` +