Поиск по сайту:

Программа 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 цифры разделяются с помощью метода деления и поиска остатка, затем вычисляются их факториалы и складываются.

Статьи по данной тематике: