Форум сайта python.su
0
5) Вывести в порядке убывания все числа кратные 7, оканчивающиеся на 5 от 30 до 200. Также вывести их произведение.
6) Проверить 3х-значные и вывести все кратные 19 и 14 одновременно. Найти их сумму.
7) Вывести все 3х-значные числа, у которых произведение цифр которых равно 48.
Прикреплённый файлы:
25.05.2022 (2).png (157,8 KБ)
Офлайн
5
t3rz
5) Вывести в порядке убывания все числа кратные 7, оканчивающиеся на 5 от 30 до 200. Также вывести их произведение.
x = [i for i in reversed(range(30, 201)) if i % 7 == 0 if i % 10 == 5] print(x) y = 1 for i in x: y *= i print(y)
t3rz3-х-значные в диапазоне 30-200, или вообще из всех трёхзначных?
6) Проверить 3х-значные и вывести все кратные 19 и 14 одновременно. Найти их сумму.
x = [i for i in range(30, 201) if i > 99 if i % 19 == 0 and i % 14 == 0] # Если 30-200 print(x) print(sum(x))
y = [i for i in range(100, 1000) if i % 19 == 0 and i % 14 == 0] # Если все вообще. print(y) print(sum(y))
Вывести все 3х-значные числа, у которых произведение цифр которых равно 48.
y = [] for i in range(100, 1000): x = (str(i)) if int(x[0]) * int(x[1]) * int(x[2]) == 48: y.append(i) print(y)
Отредактировано Palrom (Май 26, 2022 13:19:09)
Офлайн
857
t3rz
5) Вывести в порядке убывания все числа кратные 7, оканчивающиеся на 5 от 30 до 200. Также вывести их произведение.
>>> import functools >>> >>> t = tuple(i for i in range(30, 200 + 1) if i % 7 == 0 and i % 10 == 5) >>> p = functools.reduce(lambda a, b: a * b, t) >>> >>> t (35, 105, 175) >>> >>> p 643125 >>>
t3rz
6) Проверить 3х-значные и вывести все кратные 19 и 14 одновременно. Найти их сумму.
>>> t = tuple(i for i in range(100, 999 + 1) if i % 14 == 0 and i % 19 == 0) >>> s = sum(t) >>> >>> t (266, 532, 798) >>> >>> s 1596 >>>
t3rz
7) Вывести все 3х-значные числа, у которых произведение цифр которых равно 48.
>>> out = [] >>> for i in range(100, 999 + 1): ... n = i ... p = 1 ... for _ in range(3): ... p *= n % 10 ... n //= 10 ... if p == 48: ... out.append(i) ... >>> out [168, 186, 238, 246, 264, 283, 328, 344, 382, 426, 434, 443, 462, 618, 624, 642, 681, 816, 823, 832, 861] >>>
Офлайн
5
py.user.next
Позвольте вопрос, а для чего такая запись?
range(100, 999 + 1)
Офлайн
857
PalromБерём код, например
py.user.next
Позвольте вопрос, а для чего такая запись?range(100, 999 + 1)
out = [] for i in range(100, 999 + 1): n = i p = 1 for _ in range(3): p *= n % 10 n //= 10 if p == 48: out.append(i)
def get_list(first, last, num): out = [] for i in range(first, last + 1): n = i p = 1 for _ in range(3): p *= n % 10 n //= 10 if p == num: out.append(i) return out
>>> get_list(1, 1500, 50) [255, 525, 552, 1255] >>> >>> get_list(1000, 1500, 28) [1147, 1174, 1227, 1272, 1417, 1471] >>>
>>> get_list(100, 999, 48) [168, 186, 238, 246, 264, 283, 328, 344, 382, 426, 434, 443, 462, 618, 624, 642, 681, 816, 823, 832, 861] >>>
Отредактировано py.user.next (Май 26, 2022 12:57:17)
Офлайн
5
py.user.nextНу то есть, если бы не было last + 1, то range() внутри функции get_list() откинула бы последнее число в переданном ей диапазоне, а мы об этом и не узнали бы, потому, что детали функции скрыты от нас..
get_list(100, 999, 48)
Офлайн
857
PalromМы бы об этом узнали, но нам пришлось бы переписывать слишком много в твоей версии кода.
Ну то есть, если бы не было last + 1, то range() внутри функции get_list() откинула бы последнее число в переданном ей диапазоне, а мы об этом и не узнали бы, потому, что детали функции скрыты от нас..
def get_list(first, last, num): out = [] for i in range(first, last + 1): n = i p = 1 for _ in range(3): p *= n % 10 n //= 10 if p == num: out.append(i) return out
def get_list(first, last, num, ndigs): out = [] for i in range(first, last + 1): n = i p = 1 for _ in range(ndigs): p *= n % 10 n //= 10 if p == num: out.append(i) return out
>>> def get_list(first, last, num, ndigs): ... out = [] ... for i in range(first, last + 1): ... n = i ... p = 1 ... for _ in range(ndigs): ... p *= n % 10 ... n //= 10 ... if p == num: ... out.append(i) ... return out ... >>> get_list(1000, 2500, 8, 2) [1018, 1024, 1042, 1081, 1118, 1124, 1142, 1181, 1218, 1224, 1242, 1281, 1318, 1324, 1342, 1381, 1418, 1424, 1442, 1481, 1518, 1524, 1542, 1581, 1618, 1624, 1642, 1681, 1718, 1724, 1742, 1781, 1818, 1824, 1842, 1881, 1918, 1924, 1942, 1981, 2018, 2024, 2042, 2081, 2118, 2124, 2142, 2181, 2218, 2224, 2242, 2281, 2318, 2324, 2342, 2381, 2418, 2424, 2442, 2481] >>> get_list(1000, 2500, 8, 3) [1118, 1124, 1142, 1181, 1214, 1222, 1241, 1412, 1421, 1811, 2118, 2124, 2142, 2181, 2214, 2222, 2241, 2412, 2421] >>> get_list(1000, 2500, 8, 4) [1118, 1124, 1142, 1181, 1214, 1222, 1241, 1412, 1421, 1811, 2114, 2122, 2141, 2212, 2221, 2411] >>> get_list(1000, 2500, 8, 5) [] >>>
Отредактировано py.user.next (Май 26, 2022 20:04:50)
Офлайн