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
Описание задачи
Данная программа должна вывести все числа в заданном диапазоне, которые делились бы без остатка на определенное число.
Решение задачи
- На вход принимаются два числа, которые задают диапазон и записываются в разные переменные.
- Также принимается число, которое будет делителем.
- Используем цикл
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
Как можно найти все числа меньше 1000 кратные 3 и 5 с помощью кода на python
задан 5 ноя 2020 в 13:45
Умник УмникУмник Умник
111 золотой знак1 серебряный знак2 бронзовых знака
3
1 ответ
for x in range(15, 1000, 15):
print(x)
ответ дан 5 ноя 2020 в 13:51
Просмотров 2.3к. Обновлено 15 октября 2021
В диапазоне натуральных чисел от 2 до 99 определить, сколько из них кратны любому из чисел в диапазоне от 2 до 9.
Необходимо проверить кратность каждого числа сначала числу 2, потом 3 и т.д. до 9 включительно. Введем массив с восьмью ячейками. В первую будем записывать количество чисел кратных 2, во вторую — 3 и т.д.
- Записать в ячейки массива нули.
- Перебирая числа от 2 до 99,
- для каждого из них в цикле от 2 до 9
- проверять кратность числа внешнего цикла числу внутреннего.
- Если второе число делит нацело первое, значит увеличивать на 1 значение в соответствующей ячейке массива.
- для каждого из них в цикле от 2 до 9
- Вывести индексы и соответствующие им значения из массива.
Pascal
найти количество кратных чисел паскаль
var
a: array[2..9] of byte;
i,j: byte;
begin
for i:=2 to 9 do a[i] := 0;
for i:=2 to 99 do
for j:=2 to 9 do
if i mod j = 0 then
a[j] := a[j] + 1;
for i:=2 to 9 do
writeln(i,' - ', a[i]);
end
2 - 49
3 - 33
4 - 24
5 - 19
6 - 16
7 - 14
8 - 12
9 - 11
Язык Си
#include
main() {
int a[8], i, j;
for (i=0; i<9; i++) a[i] = 0;
for (i=2; i<100; i++)
for (j=2; j<10; j++)
if (i%j == 0) a[j-2] += 1;
for (i=0; i<8; i++)
printf("%d - %dn", i+2, a[i]);
}
Python
найти количество кратных чисел Python
a = [0]*8
for i in range(2,100):
for j in range(2,10):
if i%j == 0:
a[j-2] += 1
i = 0
while i < len(a):
print(i+2, ' - ', a[i])
i += 1
2 - 49
3 - 33
4 - 24
5 - 19
6 - 16
7 - 14
8 - 12
9 - 11
КуМир
алг кратность
нач
цел таб a[2:9]
цел j,i
нц для i от 2 до 9
a[i] := 0
кц
нц для j от 2 до 99
нц для i от 2 до 9
если mod(j,i) = 0 то a[i]:=a[i]+1 все
кц
кц
нц для i от 2 до 9
вывод i, " - ", a[i], нс
кц
кон
Basic-256
dim a(8)
for i=2 to 99
for j=2 to 9
if i%j = 0 then
a[j-2] = a[j-2] + 1
endif
next j
next ifor i=0 to 7
print (i+2) + " - " + a[i]
next i
#python #python-3.x
Вопрос:
a=10,b=20,c=3
например,мне нужна программа,чтобы найти, сколько кратных у c=3, которые находятся между a, b или b, a?
как сделать эту программу без использования цикла? в этом примере с этим вводом программа должна выдать нам вывод 3, потому что кратные 3 равны 12,15,18, а эти числа находятся между 10,20, поэтому 3 будет правильным.
Комментарии:
1. Пожалуйста, покажите свои собственные усилия и что в этом плохого. Что значит «между»? Являются ли границы всеобъемлющими или исключительными?
2. Вероятно, это можно было бы сделать без циклов, если бы вы его жестко закодировали. Но почему? Для этого вам понадобится как минимум 1 или 2 петли
3. Ты действительно хочешь учиться?
Ответ №1:
Вы можете взять частное от обоих чисел, разделенное на c, а затем вычесть их, чтобы получить число, кратное между ними
a=100
b=200
c=3
multiple1 = a//c
multiple2 = b//c
print(multiple2-multiple1)
# this is not required, just for confirming that above logic works
count = 0
for i in range(a,b):
if(i%c == 0):
count =1
print(count)
оба результата равны 33
Комментарии:
1. при таком решении верхняя граница исключается, а нижняя граница включается
2. я пробовал, это хорошо работает для 10,20,3,но когда я попробовал a,b, c=10,20,5, вместо вывода 3 это дает 2
3. Но между 10 и 20 у нас есть только 15 и 20, верно? Вы также хотели бы включить 10. Может быть, это то, что прокомментировал @mozway
4. мне нравится этот ответ, он такой умный, поскольку основан на чистой математической логике, такой чертовски умный.
Ответ №2:
используйте range
, начиная с ближайшего верхнего (или равного) делителя:
import math
len(range(math.ceil(a/c)*c, b, c)) # if the upper bound is inclusive, use b 1
вывод: 3
для a=10;b=20;c=3
nb. вы также можете напрямую получить номер, используя (b-math.ceil(a/c)*c)//c 1
(включая обе границы)
ПРИМЕЧАНИЕ. если вы не хотите использовать math
модуль: (b (-a//c)*c)//c 1
Ответ №3:
Я написал код ниже:
def count_multiples(a, b, c):
count = 1 if min(a, b)%c == 0 else 0
count = abs(a//c - b//c)
return count
print(count_multiples(30, 15, 2))
При этом учитываются как нижняя, так и верхняя границы.
Я протестировал его для ограниченного числа тестов, но он должен работать для любой комбинации чисел. Вы можете попробовать это и дать мне знать, если это сработает.
Ответ №4:
Для этого вам понадобится пакет «numpy». Если вы еще не установили его, откройте свой терминал и запустите «conda install numpy» или «pip install numpy».
Код:
Import numpy as np
a=10
b=20
c=3
x=np.arange(a,b,1) #it will create a list with integers [10,11,...,18,19]
# if you want to include/exclude 10,20 do /- 1
count_multiples = list(map(lambda y: y %c, x)).count(0)
# y %c, will give the modulo. The modulo will be 0, if the integer is a multiple of c
# .count(0), will count how many modulos are zero
# with lambda you create a function, in this case y %c
# map can be used instead of a loop and will check every element of the list
Ответ №5:
a,b,c=10,20,5
def countmultiples(a,b,c):
start = a-a%c
multiples = list(range(start,b 1,c))
sumofmultiples = len(multiples)
if multiples[0]%c!=0 or multiples[0]<a:
sumofmultiples-=1
multiples.pop(0)
return multiples,sumofmultiples
print(countmultiples(a,b,c)
поэтому мне нужно было найти кратные между a и b, также включенные в оба. таким образом,он идеально работает для каждого числа без циклов, рекурсивных и встроенных функций.