- Утроенному произведению своих цифр python
- Функция enumerate
- Функция range (перебор членов арифметической прогрессии)
- Упражнения
- A: Ряд — 1
- Задача 6. непонятные числа.
- Нахождение всех двухзначных чисел, равных утроенной сумме своих цифр
- Решение
- Решение
- python Задача. Замечательные числа — 1 Найдите и выведите все двузначные числа, которые равны удвоенному произведению своих цифр.
- Код
- Последние опубликованные вопросы
Утроенному произведению своих цифр python
Цикл for в языке Питон позволяет перебирать. почти всё, что угодно: объекты из списка, числа из арифметической прогрессии, элементы списков, буквы слов и т.п. В цикле for указывается переменная и множество значений, по которому будет пробегать переменная. Множество значений может быть задано списком, кортежем, строкой или диапазоном.
Вот простейший пример использования цикла, где в качестве множества значений используется кортеж:
i = 1 for color in 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet': print(i,'-th color of rainbow is ', color, sep='') i += 1
В этом примере переменная color последовательно принимает значения ‘red’ , ‘orange’ и т.д. В теле цикла выводится сообщение, которое содержит название цвета, то есть значение переменной color , а также номер итерации цикла число, которое сначала равно 1, а потом увеличивается на один (инструкцией i += 1 с каждым проходом цикла).
В списке значений могут быть выражения различных типов, например:
for obj in 1, 2, 3, 'one', 'two', 'three': print(obj)
При первых трёх итерациях цикла переменная i будет принимать значение типа int , при последующих трёх — типа str .
Функция enumerate
Вернёмся к первому примеру. В случаях, когда вместе с элементами нужны также и их индексы, идеоматический подход в питоне выглядит так:
for i, color in enumerate(('red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet')): print(i+1, '-th color of rainbow is ', color, sep='')
Функция enumerate возвращает пары из порядкового номера элемента начиная с нуля и собственно самого элемента. В данном примере ещё лучше воспользоваться параметром start , тогда нумерация начнётся не с нуля, а с указанного в параметре start значения:
for i, color in enumerate(('red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet'), start=1): print(i, '-th color of rainbow is ', color, sep='')
Функция range (перебор членов арифметической прогрессии)
Как правило, циклы for используются либо для повторения какой-либо последовательности действий заданное число раз, либо для изменения значения переменной в цикле от некоторого начального значения до некоторого конечного.
Для повторения цикла некоторое заданное число раз n можно использовать цикл for вместе с функцией range :
for i in range(n): Тело цикла
s = 0 for i in range(3): print(i, i * i) s += i * i print(s)
В качестве n в range(n) может использоваться числовая константа, переменная или произвольное арифметическое выражение (например, 2 ** 10 ). Если значение n равно нулю или отрицательное, то тело цикла не выполнится ни разу.
Код выше эквивалентен такому:
s = 0 # Начали i = 0 print(i, i * i) s += i # Ещё раз i = 1 print(i, i * i) s += i # Ещё раз i = 2 print(i, i * i) s += i # Закончили print(s)
Если задать цикл таким образом:
for i in range(a, b): Тело цикла
то индексная переменная i будет принимать значения от a до , то есть первый параметр функции range , вызываемой с двумя параметрами, задаёт начальное значение индексной переменной, а второй параметр — значение, которая индексная переменная принимать не будет. Если же a ⩾ b , то цикл не будет выполнен ни разу. Например, для того, чтобы просуммировать значения чисел от 1 до n можно воспользоваться следующей программой:
sum = 0 for i in range(1, n + 1): sum += i
В этом примере переменная i принимает значения 1, 2, . n , и значение переменной sum последовательно увеличивается на указанные значения.
Наконец, чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо использовать функцию range с тремя параметрами. Первый параметр задаёт начальное значение индексной переменной, второй параметр — значение, до которого будет изменяться индексная переменная (не включая его!), а третий параметр — величину изменения индексной переменной. Например, сделать цикл по всем нечётным числам от 1 до 99 можно при помощи функции , а сделать цикл по всем числам от 100 до 1 можно при помощи .
Более формально, цикл при d > 0 задаёт значения индексной переменной i = a , i = a + d , i = a + 2 * d и так для всех значений, для которых i < b . Если же d < 0 , то переменная цикла принимает все значения i >b .
Упражнения
A: Ряд — 1
Даны два целых числа A и B (при этом A≤B). Выведите все числа от A до B включительно.
Задача 6. непонятные числа.
Напишите программу,
# которая находит и выводит все двузначные числа,
# которые равны утроенному произведению своих цифр.
# К таким относятся, например, 15 и 24.
# Пояснение:
# 15 -> 1*5*3 = 15 — получившееся число равно оригиналу, значит число надо вывести
# 16 -> 1*6*3 = 18 — число выводить не нужно, 18 не равно 16
- Кратных трём. Это оставляет для перебора 30 чисел вместо 90, от 12 до 99 с шагом 3.
- Не имеющих в составе цифр нуля (долой ещё 3 числа: 30, 60, 90).
- Ограниченных произведением цифр снизу — 4 = 12 / 3, а сверху — 32 = 96 / 3 (произведение 33 = 99 / 3 отпадает как кратное 11, у нас же нет цифры 11).
- Некратных 11, 13 и большим простым числам. Или, формулируя по-другому, имеющих только такие простые делители, которые меньше 10. Это 2, 3, 5, 7.
- Причём, если число содержит цифру, то оно обязано на неё делиться, что сразу исключает из состава цифр 7 (на 7 делятся только 70 и 77, и они оба некратны трём).
- Числа с цифрой 8, делящиеся на 8, — это 48, 80, 88, причём, 2 последних не подходят как некратные трём.
- Числа с цифрой 9 должны делиться аж на 27. Таких чисел в пределах сотни нет.
- Также, по признаку делимости на 3, сумма цифр должна делиться на 3, значит, если одна из цифр — 3 или 6 (9 не подходит), то другая цифра — это тоже 3 или 6. 33 и 66 делятся на 11, 63 — на 7, для проверки остаётся только 36, не имеющее «плохих» делителей.
- Если число ab (составленное из цифр a и b) подходит, то число ba не подходит, т.к. у него то же самое произведение цифр.
- И ещё немного о выражении, которое является критерием отбора чисел:
a * b * 3 - a * 10 - b == 0
a * (b * 3 - 10) - b == 0
b * 3 > 10 (и это ещё мягко сказано)
b >= 4
a = b / (b * 3 - 10)
Только при b = 4 или b = 5 правая часть является натуральным числом.
Итак, для перебора остаются числа, кратные трём, и содержащие цифры из множества , причём, сумма цифр должна быть кратна трём, что вместе с ограничением (10) сужает комбинации до пар , , , причём, в первых двух из них большая цифра должна быть младшей. Впрочем, 51 и 42 имеют «плохие» делители и в любом случае не подошли бы.
Заметим ещё, что числа 45 и 54 нам тоже не подойдут, т.к. не делятся на одну из своих цифр (цифру 4).
А числа 36 и 48, упомянутые в пп. 6 и 8, не подходят по условию (10).
В итоге, мы снизили мощность множества для перебора с 90 до 2 чисел.
for a, b in ((1, 5), (2, 4)):
n = a * 10 + b
if a * b * 3 == n:
print(n)
print(*(n for a, b in ((1, 5), (2, 4))
for n in [a * 10 + b] if a * b * 3 == n), sep = '\n')
Впрочем, и эти числа можно было найти аналитически из уравнения (10), ведь если b = 4 или 5, то a вычисляется однозначно. Но надо ж было хоть что-нибудь оставить программе, чтобы она доблестно нашла и вывела.
for i in range(10, 100):
product = (i // 10) * (i % 10) * 3
if product == i:
print(i)
В этой программе мы перебираем все двузначные числа, начиная с 10 и заканчивая 99. Для каждого числа мы вычисляем произведение его цифр, умноженное на 3. Если полученное число равно исходному числу, то мы выводим его на экран.
Обратите внимание на то, что мы используем операторы целочисленного деления // и взятия остатка от деления % для получения отдельных цифр числа. Например, для числа 36 операция 36 // 10 даст результат 3, а операция 36 % 10 даст результат 6.
var z1, z2 : integer;
begin
for var i := 10 to 99 do
begin
z1 := (i div 10);
z2 := (i mod 10);
if (3*z1*z2 = i) then
Write (i : 3);
end;
end.
Нахождение всех двухзначных чисел, равных утроенной сумме своих цифр
Напишите пожалуйста программу нахождения всех двухзначных чисел равных утроенной сумме своих цифр, очень надо для школы.
Найти количество всех положительных целых чисел, не превосходящих 1000 и равных сумме кубов своих цифр
Найдите количество всех положительных целых чисел, не превосходящих 1000 и равных сумме кубов своих.
Найдите количество всех положительных целых чисел не превосходящих 1000 и равных сумме кубов своих цифр
Найдите количество всех положительных целых чисел не превосходящих 1000 и равных сумме кубов своих.
Среди двухзначных чисел печатаются те числа, которые равны сумме своих цифр
Помогите, пожалуйста, решить задачку. Написать программу, в которой среди двухзначных чисел.
Найти n первых натуральных чисел, равных сумме факториалов своих цифр
Найти n первых натуральных чисел, равных сумме факториалов своих цифр. Например, 145=1!+4!+5.
Найти n первых натуральных чисел, равных сумме факториалов своих цифр. Например, 145=1!+4!+5!
Задача из раздела "C для начинающих". Вот одно из возможных решений на Хаскелл: task n = take.
Сообщение было отмечено kopi56 как решение
Решение
for x in range(10, 100): if x == sum([int(n) for n in str(x)]) * 3: print(x)
Сообщение было отмечено kopi56 как решение
Решение
for i in range(10, 100): if (i % 10 + i // 10) * 3 == i: print(i)
Нахождение 4-значных чисел, которые равны сумме факториалов своих цифр.
Составить програму к алгоритму для нахождения 4-значных чисел, которые равны сумме факториалов.
Среди всех трехзначных чисел найти числа, равные сумме факториалов своих цифр
через связывание с файлами.помогите пожалуйста. хоть 1 задачку сдам:)
Среди всех трехзначных чисел находит числа, равные сумме факториалов своих цифр
Составить программу, которая среди всех трехзначных чисел находит числа, равные сумме факториалов.
Среди всех трёхзначных чисел,вывести те,которые равны сумме кубов своих цифр
Среди всех трёхзначных чисел,вывести те,которые равны сумме кубов своих цифр
python Задача. Замечательные числа — 1
Найдите и выведите все двузначные числа, которые равны удвоенному произведению своих цифр.
Входные данные
Программа не требует ввода данных с клавиатуры, просто выводит список искомых чисел.
Выходные данные
Выведите ответ на задачу.
- 07 March 2021
- Ответ оставил: Wani4kaa
Переберём все числа в диапазоне [10; 100). Сохраним наше текущее число в отдельную переменную. Пока копия числа больше нуля, будем умножать переменную произведения этого числа на последнюю цифру числа (% 10). Потом удалять последнюю цифру у копии числа (// 10).
Код
Если вас не устраивает ответ или его нет, то попробуйте воспользоваться поиском на сайте и найти похожие ответы по предмету школьной программы: информатика.
На сегодняшний день (21.07.2023) наш сайт содержит 16353 вопросов, по теме: информатика. Возможно среди них вы найдете подходящий ответ на свой вопрос.
Последние опубликованные вопросы
Предметы
- Алгебра
- Английский язык
- Беларуская мова
- Беларуская мова
- Биология
- География
- Геометрия
- Другие предметы
- Другое
- Информатика
- История
- Қазақ тiлi
- Литература
- Математика
- Обществознание
- Право
- Русский язык
- Українська література
- Українська мова
- Физика
- Химия
- Экономика