Тип входных,то есть вводимых данных - integer(целые числа).
Тип выходных,то есть выводимых данных будет real,так как при нахождении среднего арифметического числа мы делим их сумму на 3.
1
Посмотрите на данное вам число и определите количество его цифр.
Пример: напишите 5827 в развернутом виде.
Прочитайте число вслух: пять тысяч восемьсот двадцать семь.
Обратите внимание, что в этом числе есть четыре цифры. В результате развернутая форма будет содержать четыре слагаемых.
2
Перепишите число в виде суммы его цифр, оставив между ними некоторое расстояние, чтобы умножить каждую цифру на некоторую цифру (об этом далее).
Пример: 5827 перепишите так:
5 + 8 + 2 + 7
3
Цифры числа расположены в определенных позициях, которые соответствуют (справа налево) единицам, десяткам, сотням, тысячам и так далее. Определите название позиции и ее значение для каждой цифры (справа налево).
Пример: так как в данном числе четыре цифры, то вам нужно определить названия четырех позиций (справа налево).
7 соответствует единицам (значение = 1).
2 соответствует десяткам (значение = 10).
8 соответствует сотням (значение = 100).
5 соответствует тысячам (значение = 1000).
4
Умножьте каждую цифру данного числа на значение соответствующей ей позиции.
Пример: [5 * 1000] + [8 * 100] + [2 * 10] + [7 * 1]
5
Запишите окончательный ответ, так как сумма произведений является развернутой формой исходного числа.
Пример: развернутая форма 5827:
5000 + 800 + 20 + 1
# Python 3.X
from random import randint
from functools import reduce
arr = [randint(1, 201) for _ in range(100)]
odd = list(filter(lambda x: x % 2 == 1, arr))
print('Количество: {}'.format(len(odd)), 'Произведение: {:,}'.format(reduce(lambda x, y: x * y, odd)), sep='\n')
64 = 2^6 => i=6
8 = 2^3 => i=3
6/3=2
Объем занимаемой памяти уменьшился в два раза.
Python 3.5:
def pow(a, k, m): # находит a^k по модулю m
if k == 0:
return 1
t = pow(a, k//2, m) ** 2 % m
if k % 2 == 0:
return t
return a * t % m
Ответ даст запуск pow(15082015, 26082015, 17082016)