Программа Python для печати всех сильных чисел в заданном списке
Число называется сильным числом, если факториалы его отдельных цифр найдены, а затем сложены вместе, и рассчитанная общая сумма равна самому числу. Здесь, в этой статье о Python, на трех разных примерах приведены различные методы поиска сильных чисел, если они присутствуют в списке. В примере 1 список, содержащий предварительно вычисленные факториалы чисел, используется для вычисления суммы факториалов всех присутствующих цифр в числе при проверке того, является ли выбранное число сильным или нет. В примере 2 факториалы всех чисел от 0 до 9 вычисляются с помощью функции и сохраняются в списке, а затем этот список используется для расчета суммы факториалов всех цифр числа при проверке, является ли число сильным или нет. . В примере 3 цифры проверяемого числа разделяются, а их факториал вычисляется и складывается без использования отдельного списка факториалов.
Пример 1. Распечатайте все сильные числа в заданном списке, используя в процессе отдельный список предварительно вычисленных факториалов отдельных цифр.
Алгоритм
Шаг 1 — Получите список целых чисел. Убедитесь, что в этом списке тестов есть хотя бы один сильный номер. Создайте функцию numType, чтобы проверить, является ли число сильным или нет.
Шаг 2 — Составьте отдельный список предварительно рассчитанных факториалов чисел от 0 до 9.
Шаг 3 — Для каждого числа из тестового списка с помощью функции numType сначала отделите цифры этого числа и выберите предварительно рассчитанный факториал из списка факториалов.
Шаг 4 — Сложите сумму этих факториалов. Если число равно общей сумме, выведите это число.
Шаг 5 – Запустите программу и проверьте результат.
Файл Python содержит это
list1=[300, 40585, 500, 460, 3, 2, 89, 1, 145, 260, 630]
print("Sample List: ", list1)
#List having listoffactorials of numbers from 1 to 9
listoffactorials = [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
def numType(num):
numstr = str(num)
sum=0
for digit in numstr:
sum += listoffactorials[int(digit)]
if sum == num:
return "isStrong"
else:
return "notStrong"
for item in list1:
if (numType(item) == "isStrong"):
print("Strong Number: ", item)
Просмотр результата
Чтобы увидеть результат, запустите файл Python в окне cmd.
Sample List: [300, 40585, 500, 460, 3, 2, 89, 1, 145, 260, 630]
Strong Number: 40585
Strong Number: 2
Strong Number: 1
Strong Number: 145
Пример 2. Распечатайте все сильные числа в заданном списке, вычислив факториалы отдельных цифр с помощью функции и создав их отдельный список в процессе.
Алгоритм
Шаг 1 — Укажите список целых чисел. Убедитесь, что в этом списке образцов есть хотя бы один сильный номер. Создайте функцию numType, чтобы проверить, является ли число сильным или нет.
Шаг 2 – Создайте функцию CalcFactorial(), вызовите ее для чисел от 0 до 9 и создайте отдельный список факториалов чисел от 0 до 9.
Шаг 3 — Для каждого числа из тестового списка с помощью функции numType сначала отделите цифры этого числа и выберите рассчитанный факториал из списка факториалов. Используйте строковый тип числовой формы для разделения цифр, а затем измените их обратно на целые числа.
Шаг 4 — Сложите сумму этих факториалов. Если число равно общей сумме, выведите это сильное число.
Шаг 5 – Запустите программу и проверьте результат.
Файл Python содержит это
listoffactorials=[]
def calcFactorial(num):
factorial=1
if num < 0:
print("Error, the number is negative")
elif num > 0:
for item in range(1 , num + 1):
factorial = factorial*item
return factorial
else:
return 1
for item in range(0, 10):
listoffactorials.append(calcFactorial(item))
print("Calculated digits factorial list:", listoffactorials)
def numType(num):
numstr = str(num)
sum=0
for digit in numstr:
sum += listoffactorials[int(digit)]
if sum == num:
return "isStrong"
else:
return "notStrong"
list1=[300, 40585, 500, 460, 3, 2, 89, 1, 145, 260, 630]
print("Sample List: ", list1)
for item in list1:
if (numType(item) == "isStrong"):
print("Strong Number: ", item)
Просмотр результата
Откройте окно cmd и запустите файл Python, чтобы увидеть результат.
Calculated digits factorial list: [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
Sample List: [300, 40585, 500, 460, 3, 2, 89, 1, 145, 260, 630]
Strong Number: 40585
Strong Number: 2
Strong Number: 1
Strong Number: 145
Пример 3. Распечатайте все сильные числа в заданном списке без использования отдельного списка факториалов отдельных цифр в процессе.
Алгоритм
Шаг 1 — Составьте список целых чисел. Убедитесь, что в этом списке образцов есть хотя бы один сильный номер.
Шаг 2 — Создайте функцию CalcFactorial() для вычисления факториалов указанного числа.
Шаг 3 — Для каждого числа из тестового списка сначала отделите цифры этого числа и вычислите его факториал. Затем прибавьте этот факториал к сумме. Используйте целочисленный тип числовой формы для разделения цифр путем деления на десять и проверки остатка.
Шаг 4 — Проверьте, равно ли число общей сумме, а затем распечатайте это сильное число.
Шаг 5 – Запустите программу и проверьте результат.
Файл Python содержит это
list1=[300, 40585, 500, 460, 3, 2, 89, 1, 145, 260, 630]
print("Sample List: ", list1)
def calcFactorial(num):
factorial=1
if num < 0:
print("Error, the number is negative")
elif num > 0:
for item in range(1 , num + 1):
factorial = factorial*item
return factorial
else:
return 1
for item in list1:
tempItem = item
total = 0
while(tempItem):
rem = tempItem % 10
total += calcFactorial(rem)
tempItem = tempItem // 10
if(total == item):
print("Strong Number: ", item)
else:
print("Not a Strong Number: ", item)
Просмотр результата
Откройте окно cmd и запустите файл Python, чтобы увидеть результат.
Sample List: [300, 40585, 500, 460, 3, 2, 89, 1, 145, 260, 630]
Not a Strong Number: 300
Strong Number: 40585
Not a Strong Number: 500
Not a Strong Number: 460
Not a Strong Number: 3
Strong Number: 2
Not a Strong Number: 89
Strong Number: 1
Strong Number: 145
Not a Strong Number: 260
Not a Strong Number: 630
В этой статье о Python на трех разных примерах даны методы поиска чисел Стронга из заданного списка целых чисел. В примере 1 метод использует заранее рассчитанный список факториалов для вычисления факториалов отдельных цифр, а затем их суммы. В примере 2 вместо использования заранее рассчитанного списка список факториалов создается с помощью функции расчета факториалов. В обоих примерах, 1 и 2, строковая форма числа используется для поиска отдельных цифр. В примере 3 цифры разделяются с помощью метода деления и поиска остатка, затем вычисляются их факториалы и складываются.