Описание задачи
Данная программа должна вывести все числа в заданном диапазоне, которые делились бы без остатка на определенное число.
Решение задачи
- На вход принимаются два числа, которые задают диапазон и записываются в разные переменные.
- Также принимается число, которое будет делителем.
- Используем цикл
for
, чтобы пройтись по всему диапазону и проверить все числа на кратность. Выводим только те числа, которые делятся на заданное число без остатка. - Конец.
Исходный код
Ниже дан исходный код для вывода всех чисел из заданного диапазона, которые удовлетворяют условию делимости на данное число. Результаты работы программы также даны ниже.
lower = int(input("Введите нижнюю границу диапазона:")) upper = int(input("Введите верхнюю границу диапазона:")) n = int(input("Введите делитель:")) for i in range(lower, upper + 1): if(i % n == 0): print(i)
Объяснение работы программы
- Пользователь вводит два числа, нижнюю и верхнюю границы. Они записываются в отдельные переменные.
- Далее пользователь вводит число, которое будет делителем. Оно также сохраняется в своей переменной.
- Значение переменной цикла
for
варьируется от нижней до верхней границы с шагом 1. - В процессе работы цикла проверяется, равен ли остаток от деления нулю. Если остаток равен нулю, делимое выводится на экран.
- Конец.
Результаты работы программы
Пример 1: Введите нижнюю границу диапазона:1 Введите верхнюю границу диапазона:50 Введите делитель:5 5 10 15 20 25 30 35 40 45 50 Пример 2: Введите нижнюю границу диапазона:50 Введите верхнюю границу диапазона:100 Введите делитель:7 56 63 70 77 84 91 98
Или я чего не понимаю, или у вас все как-то очень сложно:
import random
n = int(input("Введите значение n: "))
m = int(input("Введите значение m: "))
array = []
for i in range(n):
row=[]
for j in range(m):
row.append(random.randint(-1,5))
array.append(row)
print("Матрица:",array)
q5=int(input("Введите заданное число: "))
for i in range(n):
for j in range(m):
if array[i][j]%q5==0:
print(array[i][j],i,j,int(array[i][j]/q5))
Результат:
Введите значение n: 6
Введите значение m: 8
Матрица: [[4, -1, 4, 3, -1, 2, 0, 3], [4, 1, 4, 0, 2, 4, -1, 1], [1, 4, 5, 4,
3, 1, 5, 1], [1, -1, 5, 5, 3, 4, 4, 1], [2, 3, 3, 4, -1, 1, 4, 0], [5, -1, 2,
1, -1, 2, 1, 0]]
Введите заданное число: 2
4 0 0 2
4 0 2 2
2 0 5 1
0 0 6 0
4 1 0 2
4 1 2 2
0 1 3 0
2 1 4 1
4 1 5 2
4 2 1 2
4 2 3 2
4 3 5 2
4 3 6 2
2 4 0 1
4 4 3 2
4 4 6 2
0 4 7 0
2 5 2 1
2 5 5 1
0 5 7 0
И да, разумеется, 0 считается кратным любому числу. Если это не так, то последнее условие заменить на
array[i][j]!=0 and array[i][j]%q5==0:
Дополнение.
Поскольку ответ, как оказалось, труден для понимания ТС, привожу его суперупрощенную версию, отвечая на вопрос “если я вбил в q5 10, то в матрице он должен найти 30 или 100, например”. Надеюсь, теперь понятно, что первый ответ не изменяет матрицу, а делает именно то, что вы описали:
array= [[40, -10, 4, 30],[20,3,100,5],[10,20,30,3],[3,3,20,3]]
q5=int(input("Введите заданное число: "))
for i in range(len(array)):
for j in range(len(array[0])):
if array[i][j]%q5==0:
print(array[i][j],int(array[i][j]/q5))
Результат:
Введите заданное число: 10
40 4
-10 -1
30 3
20 2
100 10
10 1
20 2
30 3
20 2
I’m trying to write a code that lets me find the first few multiples of a number. This is one of my attempts:
def printMultiples(n, m):
for m in (n,m):
print(n, end = ' ')
I figured out that, by putting for m in (n, m):
, it would run through the loop for whatever number was m
.
def printMultiples(n, m):
'takes n and m as integers and finds all first m multiples of n'
for m in (n,m):
if n % 2 == 0:
while n < 0:
print(n)
After multiple searches, I was only able to find a sample code in java, so I tried to translate that into python, but I didn’t get any results. I have a feeling I should be using the range()
function somewhere in this, but I have no idea where.
ivanleoncz
8,7706 gold badges56 silver badges48 bronze badges
asked Jan 27, 2013 at 23:01
2
If you’re trying to find the first count
multiples of m
, something like this would work:
def multiples(m, count):
for i in range(count):
print(i*m)
Alternatively, you could do this with range:
def multiples(m, count):
for i in range(0,count*m,m):
print(i)
Note that both of these start the multiples at 0
– if you wanted to instead start at m
, you’d need to offset it by that much:
range(m,(count+1)*m,m)
answered Jan 27, 2013 at 23:05
AmberAmber
503k82 gold badges625 silver badges550 bronze badges
1
Does this do what you want?
print range(0, (m+1)*n, n)[1:]
For m=5, n=20
[20, 40, 60, 80, 100]
Or better yet,
>>> print range(n, (m+1)*n, n)
[20, 40, 60, 80, 100]
For Python3+
>>> print(list(range(n, (m+1)*n, n)))
[20, 40, 60, 80, 100]
answered Jan 27, 2013 at 23:04
sberrysberry
127k18 gold badges136 silver badges165 bronze badges
4
Based on mathematical concepts, I understand that:
- all natural numbers that, divided by
n
, having0
as remainder, are all multiples ofn
Therefore, the following calculation also applies as a solution (multiples between 1 and 100):
>>> multiples_5 = [n for n in range(1, 101) if n % 5 == 0]
>>> multiples_5
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
For further reading:
- https://www.mathsisfun.com/definitions/natural-number.html
- https://www.mathwizz.com/arithmetic/help/help9.htm
- https://www.calculatorsoup.com/calculators/math/multiples.php
answered Jan 23, 2019 at 16:43
ivanleonczivanleoncz
8,7706 gold badges56 silver badges48 bronze badges
For the first ten multiples of 5, say
>>> [5*n for n in range(1,10+1)]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
answered Jan 27, 2013 at 23:18
Colonel PanicColonel Panic
132k85 gold badges399 silver badges461 bronze badges
1
You can do:
def mul_table(n,i=1):
print(n*i)
if i !=10:
mul_table(n,i+1)
mul_table(7)
double-beep
4,96617 gold badges32 silver badges41 bronze badges
answered May 29, 2019 at 14:13
If this is what you are looking for –
To find all the multiples between a given number and a limit
def find_multiples(integer, limit):
return list(range(integer,limit+1, integer))
This should return –
Test.assert_equals(find_multiples(5, 25), [5, 10, 15, 20, 25])
answered Jul 26, 2020 at 8:31
era5toneera5tone
5514 silver badges14 bronze badges
Another method that can be done is trying to make a list. Here’s my example for getting the first 20 multiples of 7.
Input:
multiples_7 = [x * 7 for x in range(1,21)]
print(multiples_7)
Output:
[7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98, 105, 112, 119, 126, 133, 140]
eyllanesc
233k19 gold badges161 silver badges234 bronze badges
answered Sep 24, 2021 at 5:07
def multiples(n,m,starting_from=1,increment_by=1):
"""
# Where n is the number 10 and m is the number 2 from your example.
# In case you want to print the multiples starting from some other number other than 1 then you could use the starting_from parameter
# In case you want to print every 2nd multiple or every 3rd multiple you could change the increment_by
"""
print [ n*x for x in range(starting_from,m+1,increment_by) ]
answered Jan 18, 2017 at 15:59
For first 10 multiples of 5 you can do as
import numpy as np
#np.arange(1,11) array from 1 to 10
array_multipleof5 = [5*n for n in np.arange(1,11)]
array_multipleof5 = np.array(array_multipleof5)
print(array_multipleof5)
answered Aug 2, 2021 at 23:37
How to calculate the first n multiples of a given number x, in the compact python’s lambda notation
n_multiples_of_x = lambda n,x : list( range(x, x*n + 1, x) )
Tests:
assert n_multiples_of_x(5, 5) == [5, 10, 15, 20, 25]
answered May 15, 2022 at 15:28
Я пробовал нечто подобное, но не могу получить то, что хочу. Это больше для практики, но я хотел бы найти решение.
Code language: PHP (php)
x = int(input("Введите целое число: ")) for c in x: if x % 3 == 0: continue print(x)
Решение.
- Правильный отступ. В Python отступы необходимы для разграничения блоков кода и для того, чтобы знать, какие структуры находятся внутри каждого блока.
- Первая переменная в for – это та, которая будет принимать значения в каждом цикле, поэтому в for используйте c, а не x.
- Вы должны выполнить for для диапазона значений, а не для конкретного значения, поэтому используйте range.
Прилагаю ваш код с соответствующими исправлениями:
Code language: PHP (php)
x = int(input("Введите целое число: ")) for c in range(0,x): if c % 3 == 0: continue print(c)
Используя List Comprehension, вы можете сократить свой код всего до двух строк:
Code language: PHP (php)
x = int(input("Введите целое число: ")) [print(c) for c in range(0,x) if c % 3 == 0]
Или вычислите все кратные 3 до введенного значения:
Code language: PHP (php)
x = int(input("Введите целое число: ")) [print(c) for c in range(3,x,3)]
Давайте воспользуемся JavaScript, чтобы найти числа, кратные числу.
В целом решение алгоритмов и задач кодирования – лучший способ улучшить свои навыки решения проблем как разработчика. Это также способ попрактиковать свои знания и навыки программирования. Независимо от того, какой язык или технологию вы используете, основы всегда остаются неизменными.
Речь идет о решении проблем и поиске лучших решений, а не о том, какой инструмент вы используете. Практика делает лучшее. Вот почему вам всегда нужно учиться и практиковаться в своих вещах (особенно в основах), если вы хотите улучшить и перейти на следующий уровень.
В этой статье мы будем использовать JavaScript для решения простой задачи кодирования, которая позволяет нам находить кратные числа. Так что давайте перейдем к делу.
инструкции
В этой задаче вы должны создать программу, которая возвращает кратные целому числу до тех пор, пока вы не достигнете указанного нами предела.
Итак, у нас есть функция getMultiples()
, которая принимает два параметра:
- Целое число (положительное число).
- И предел (положительное число).
В результате функция должна вернуть массив, содержащий все кратные целого числа integer
, которые меньше параметра limit
.
Таким образом, если переданы параметры (5, 15)
, функция должна вернуть массив [5, 10, 15]
, поскольку числа 5, 10 и 15 кратны от 5 до 15.
function getMultiples(integer, limit) { //your code goes here. }
Теперь, прежде чем переходить к решению, попробуйте решить задачу самостоятельно, а затем сравните ее с моим решением.
Решение проблемы
Чтобы решить эту простую задачу, первым делом я создам пустой массив внутри функции. Так что мы можем использовать цикл for, чтобы просмотреть все кратные и поместить их в этот пустой массив.
Давайте создадим функцию и пустой массив:
function getMultiples(integer, limit) { let multiples = []; }
После этого мы создадим цикл for, который позволит нам перебрать все кратные, которые меньше лимита, и передать их в массив.
Вот пример кода:
function getMultiples(integer, limit) { let multiples = []; for(let i = integer; i<= limit; i= i+integer){ multiples.push(i); } }
Как видите, пока значение i
меньше параметра limit, цикл продолжает добавлять целочисленное значение к предыдущему i
. Это позволяет нам получить кратные integer
и поместить их в массив.
Теперь, чтобы выполнить задачу, нам нужно только вернуть массив внутри функции.
Вот полное решение:
function getMultiples(integer, limit) { let multiples = []; for(let i = integer; i<= limit; i= i+integer){ multiples.push(i); } return multiples; } getMultiples(2, 8); //returns [2, 4, 6, 8] getMultiples(5, 20); //returns [5, 10, 15, 20]
Вот и все, мы решили задачу. Я знаю, что есть другие подходы к решению этой проблемы. Но и такой подход неплох.
Заключение
Как вы можете видеть выше, это был пример простой задачи кодирования JavaScript, которую вы можете практиковать, чтобы улучшить свои навыки и проверить свои знания. Алгоритмы и задачи – лучший способ поднять ваши навыки решения проблем на новый уровень. Просто продолжай практиковаться.
Так что спасибо, что прочитали эту статью. Я надеюсь, что вы сочли полезным.
Дополнительная литература:
Больше контента на plainenglish.io