Рубрики
Без рубрики

Простая факторизация | Как найти простые множители числа в Python

Если число является простым числом и идеально делит данное число, то это число называется простым множителем python данного числа.

Автор оригинала: Team Python Pool.

Вступление

В этой статье мы увидим программу python для печати всех простых множителей данного числа. Если число является простым числом и идеально делит данное число, то это число называется простым множителем данного числа. Здесь мы увидим, что такое простой фактор, метод поиска простого фактора и программа python.

Что такое простой множитель числа?

Простые множители числа-это простое число, которое при умножении вместе дает число. мы можем проверить простой множитель числа по двум условиям:

  • Число должно быть простым.
  • Число должно идеально делить число.
python простой множитель числа

Шаги по поиску простых множителей числа

  1. Пусть число обозначается числом num.
  2. в то время как num делится на 2, мы выведем 2 и разделим num на 2.
  3. После шага 2 число всегда должно быть нечетным.
  4. Начните цикл с квадратного корня из n. Если я разделю num, выведите i и разделите num на i. После того как я не смогу разделить num, увеличьте значение i на 2 и продолжайте.
  5. Если num-простое число и больше 2, то num не может стать 1.
  6. Итак, выведите num, если он больше 2.

Примеры печати простых множителей числа в Python

Давайте разберемся в программе для простых множителей числа подробнее с помощью различных примеров:

1. Простой множитель числа в Python с использованием циклов While и for

В этой программе мы будем использовать цикл while и цикл for как для определения простых множителей данного числа. мы импортируем математический модуль в эту программу, чтобы использовать функцию квадратного корня в python. После этого мы применим цикл и попытаемся найти простые множители данного числа.

# python program to print prime factors

import math
def primefactors(n):
   #even number divisible
   while n % 2 == 0:
      print (2),
      n = n / 2
   
   #n became odd
   for i in range(3,int(math.sqrt(n))+1,2):
    
      while (n % i == 0):
         print (i)
         n = n / i
   
   if n > 2:
      print (n)

n = int(input("Enter the number for calculating the prime factors :\n"))
primefactors(n)

Выход:

Enter the number for calculating the prime factors :
650
2
5
5
13

Объяснение:

Здесь сначала мы импортировали математическую библиотеку из модуля python. Во-вторых, мы взяли вход n в качестве числа и вызвали функцию primefactors() . В-третьих, мы взяли primefactors() в качестве функции и применили цикл while и проверили, идет ли модуль числа 0, разделив его на 2. В-четвертых, цикл while будет выполняться до тех пор, пока число не станет четным и делимым на 2, и выводить его и делить число на 2 на каждой итерации. После этого мы применим цикл for от до квадратного корня из n+1. Затем мы снова применим цикл while внутри цикла for и проверим условие. Наконец, если n больше 2, то мы напечатали это число. Следовательно, все простые множители числа печатаются.

2. использование только для цикла

В этой программе мы будем использовать цикл for только для нахождения простых множителей данного числа. мы будем применять несколько циклов for и попытаемся найти простые множители данного числа.

#using for loop

n = int(input("Enter the number for calculating the prime factors :\n"))
for i in range(2,n + 1):
    if n % i == 0:
        count = 1
        for j in range(2,(i//2 + 1)):
            if(i % j == 0):
                count = 0
                break
        if(count == 1):
            print(i)

Выход:

Enter the number for calculating the prime factors :
350
2
5
7

Объяснение:

В этом примере мы будем использовать только цикл for. Во-первых, мы приняли входные данные от пользователя как n. Во – вторых, мы применили цикл for от до+1. Затем мы проверим, равен ли модуль значения i и числа 0. Затем мы ведем счет и снова применяем цикл for внутри цикла for от до//2+1. и проверьте данное условие if. если условие удовлетворяет, то значение count устанавливается равным 0, и мы разрываем оператор. Затем мы выходим из цикла for и проверяем условие if count и печатаем значение i. Следовательно, простые множители печатаются с единственным-единственным их значением.

NOTE:

Suppose we take input as 650 : the prime factors are 2,5,5,13
so, it will print 2,5,13 as all integers one time.

3. Простой Множитель Числа В Python, использующий только цикл while

В этой программе мы будем использовать цикл while только для определения простых множителей данного числа. мы будем применять несколько циклов while и попытаемся найти простые множители данного числа.

#using while loop

n = int(input("Enter any Number for calculating the prime factors: "))
i = 1

while(i <= n):
    c = 0
    if(n % i == 0):
        j = 1
        while(j <= i):
            if(i % j == 0):
                c = c + 1
            j = j + 1
            
        if (c == 2):
            print(i)
    i = i + 1

Выход:

Enter any Number for calculating the prime factors: 350
2
5
7

Объяснение:

В этом примере мы будем использовать только цикл while. Во-первых, мы приняли входные данные от пользователя как n. Во-вторых, мы установим значение i как 1. В-третьих, мы применим цикл while с условием проверки, так как i должен быть меньше или равен n. Внутри цикла | мы установим значение c равным 0 и применим в нем условие if и while. Наконец, мы проверим, станет ли значение c равным 2, а затем выведем значение i. Следовательно, простые множители печатаются с единственным-единственным их значением.

NOTE:

Suppose we take input as 650 : the prime factors are 2,5,5,13
so, it will print 2,5,13 as all integers one time.

Вывод

В этом уроке мы видели, как найти простые множители числа с помощью 3 различных методов. Все методы подробно объясняются с помощью примеров и их объяснения. Вы можете использовать любой метод, который вам нравится, в соответствии с вашими потребностями.