После того, как я посмотрю на SO на наличие вопросов similair и не найду их, я сделаю попытку, задав их здесь. Я постараюсь быть максимально конкретным.
Используя Python, я пытаюсь создать фрагмент кода, который проходит через все возможные числа Харшада и возвращает [i] количество чисел Харшада в списке. Для этого я сначала создал метод isHarshad, который выясняет, является ли число в списке числом Harshad. После этого я реализую этот метод для печати только чисел Hardshad в списке.
def isHarshad(i):
l = list(str(i))
a = sum([int(e) for e in l])
if a == 0:
return False
if i % a == 0:
return True
else:
return False
def ithHarshad(i):
a = []
count = 0
top = 999999999
for x in (range (1,top)):
if isHarshad(x):
a = a + [x]
count += 1
if count == i:
print(a)
ithHarshad(25)
Запуск этого кода возвращает первые 25 чисел Харшада, что я и хочу.
Теперь мой вопрос: возможно ли сформировать цикл, в котором он проверяет диапазон чисел Харшада, не создавая «верхнюю» переменную, как показано в моем коде? Чувство беспорядка зацикливается на произвольном числе, например 999999.
Я надеюсь, что мой вопрос немного ясен, и заранее спасибо за любой вклад!