Как найти с помощью for кратные числа

Описание задачи

Данная программа должна вывести все числа в заданном диапазоне, которые делились бы без остатка на определенное число.

Решение задачи

  1. На вход принимаются два числа, которые задают диапазон и записываются в разные переменные.
  2. Также принимается число, которое будет делителем.
  3. Используем цикл for, чтобы пройтись по всему диапазону и проверить все числа на кратность. Выводим только те числа, которые делятся на заданное число без остатка.
  4. Конец.

Исходный код

Ниже дан исходный код для вывода всех чисел из заданного диапазона, которые удовлетворяют условию делимости на данное число. Результаты работы программы также даны ниже.

lower = int(input("Введите нижнюю границу диапазона:"))
upper = int(input("Введите верхнюю границу диапазона:"))
n = int(input("Введите делитель:"))
for i in range(lower, upper + 1):
    if(i % n == 0):
        print(i)

Объяснение работы программы

  1. Пользователь вводит два числа, нижнюю и верхнюю границы. Они записываются в отдельные переменные.
  2. Далее пользователь вводит число, которое будет делителем. Оно также сохраняется в своей переменной.
  3. Значение переменной цикла for варьируется от нижней до верхней границы с шагом 1.
  4. В процессе работы цикла проверяется, равен ли остаток от деления нулю. Если остаток равен нулю, делимое выводится на экран.
  5. Конец.

Результаты работы программы

Пример 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's user avatar

ivanleoncz

8,7706 gold badges56 silver badges48 bronze badges

asked Jan 27, 2013 at 23:01

iKyriaki's user avatar

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

Amber's user avatar

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

sberry's user avatar

sberrysberry

127k18 gold badges136 silver badges165 bronze badges

4

Based on mathematical concepts, I understand that:

  • all natural numbers that, divided by n, having 0 as remainder, are all multiples of n

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

ivanleoncz's user avatar

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 Panic's user avatar

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's user avatar

double-beep

4,96617 gold badges32 silver badges41 bronze badges

answered May 29, 2019 at 14:13

deeksha's user avatar

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

era5tone's user avatar

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's user avatar

eyllanesc

233k19 gold badges161 silver badges234 bronze badges

answered Sep 24, 2021 at 5:07

Al M. Rodriguez's user avatar

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

Vikash Raja Samuel Selvin's user avatar

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

RevathyKDS's user avatar

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

Francisco Bernardo's user avatar

Язык программирования Python

Я пробовал нечто подобное, но не могу получить то, что хочу. Это больше для практики, но я хотел бы найти решение.

x = int(input("Введите целое число: ")) for c in x: if x % 3 == 0: continue print(x)

Code language: PHP (php)

Решение.

  1. Правильный отступ. В Python отступы необходимы для разграничения блоков кода и для того, чтобы знать, какие структуры находятся внутри каждого блока.
  2. Первая переменная в for – это та, которая будет принимать значения в каждом цикле, поэтому в for используйте c, а не x.
  3. Вы должны выполнить for для диапазона значений, а не для конкретного значения, поэтому используйте range.

Прилагаю ваш код с соответствующими исправлениями:

x = int(input("Введите целое число: ")) for c in range(0,x): if c % 3 == 0: continue print(c)

Code language: PHP (php)

Используя List Comprehension, вы можете сократить свой код всего до двух строк:

x = int(input("Введите целое число: ")) [print(c) for c in range(0,x) if c % 3 == 0]

Code language: PHP (php)

Или вычислите все кратные 3 до введенного значения:

x = int(input("Введите целое число: ")) [print(c) for c in range(3,x,3)]

Code language: PHP (php)

Давайте воспользуемся 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

Добавить комментарий