Hướng dẫn how do you count prime factors in python? - làm thế nào để bạn đếm các thừa số nguyên tố trong python?

Vì không ai cố gắng hack điều này bằng phương pháp

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
4 cũ, tôi sẽ lấy nghề này. Phương pháp này không linh hoạt cho các vấn đề như thế này bởi vì nó thực hiện vòng lặp của các hành động lặp đi lặp lại trên mảng các đối số và không có cách nào để làm gián đoạn vòng lặp này theo mặc định. Cửa mở sau khi chúng tôi đã thực hiện
def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
5 của riêng mình cho các vòng lặp bị gián đoạn như sau:

from functools import reduce

def inner_func(func, cond, x, y):
    res = func(x, y)
    if not cond(res):
        raise StopIteration(x, y)
    return res

def ireducewhile(func, cond, iterable):
    # generates intermediary results of args while reducing
    iterable = iter(iterable)
    x = next(iterable)
    yield x
    for y in iterable:
        try:
            x = inner_func(func, cond, x, y)
        except StopIteration:
            break
        yield x

Sau đó, chúng tôi có thể sử dụng một số

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
6 giống như đầu vào của phương pháp giảm python tiêu chuẩn. Hãy để điều này
def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
6 được định nghĩa theo cách sau:

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None

Giả sử chúng tôi muốn nhân tố số 600851475143, đầu ra dự kiến ​​của chức năng này sau khi sử dụng nhiều lần chức năng này phải là thế này:

(600851475143, 2) -> (8462696833 -> 71), (10086647 -> 839), (6857, 1471) -> None

Mục đầu tiên của tuple là một số mà phương thức

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
8 lấy và cố gắng chia cho ước số nhỏ nhất bắt đầu từ mục thứ hai và hoàn thiện với căn bậc hai của số này. Nếu không có ước số tồn tại, không có gì được trả lại. Bây giờ chúng ta cần bắt đầu với Iterator được xác định như thế này:

def gener(prime):
    # returns and infinite generator (600851475143, 2), 0, 0, 0...
    yield (prime, 2)
    while True:
        yield 0

Cuối cùng, kết quả của vòng lặp là:

result = list(ireducewhile(lambda x,y: div(x), lambda x: x is not None, iterable=gen(600851475143)))
#result: [(600851475143, 2), (8462696833, 71), (10086647, 839), (6857, 1471)]

Và phát ra các ước số chính có thể được bắt bởi:

if len(result) == 1: output = result[0][0]
else: output = list(map(lambda x: x[1], result[1:]))+[result[-1][0]]
#output: [2, 71, 839, 1471]

Note:

Để làm cho nó hiệu quả hơn, bạn có thể muốn sử dụng các số nguyên tố được tạo sẵn nằm trong phạm vi cụ thể thay vì tất cả các giá trị của phạm vi này.

  • Giới thiệu
  • Yếu tố chính của một con số là gì?
  • Các bước để tìm các yếu tố chính của một số
  • Ví dụ về in các yếu tố chính của một số trong Python
    • 1. Yếu tố chính của một số trong Python sử dụng trong khi và cho vòng lặp
    • 2. Chỉ sử dụng cho vòng lặp
    • 3. Hệ số nguyên tố của một số trong Python chỉ sử dụng trong khi vòng lặp
  • Sự kết luận

Giới thiệu

Yếu tố chính của một con số là gì?

Yếu tố chính của một con số là gì?

Các bước để tìm các yếu tố chính của một số

  • Ví dụ về in các yếu tố chính của một số trong Python
  • Số sẽ chia số hoàn hảo.

Hướng dẫn how do you count prime factors in python? - làm thế nào để bạn đếm các thừa số nguyên tố trong python?

  1. Đặt số được biểu thị bằng num.
  2. Trong khi Num chia hết cho 2, chúng ta sẽ in 2 và chia num cho 2.
  3. Sau bước 2, NUM phải luôn luôn kỳ lạ.
  4. Bắt đầu một vòng từ I = 3 đến căn bậc hai của n. Nếu tôi chia num, in i và chia num cho i. Sau khi tôi không chia Num, tăng giá trị I cho 2 và tiếp tục.
  5. Nếu Num là số nguyên tố và lớn hơn 2, thì NUM không thể trở thành 1.
  6. Vì vậy, in num nếu nó lớn hơn 2.

Ví dụ về in các yếu tố chính của một số trong Python

Hãy cho chúng tôi hiểu chương trình cho các yếu tố chính của số lượng chi tiết với sự trợ giúp của các ví dụ khác nhau:

1. Yếu tố chính của một số trong Python sử dụng trong khi và cho vòng lặp

Trong chương trình này, chúng tôi sẽ sử dụng trong khi lặp và cho cả hai vòng để tìm ra các yếu tố chính của số đã cho. Chúng tôi sẽ nhập mô -đun toán học trong chương trình này để chúng tôi có thể sử dụng hàm gốc trong Python. Sau đó, chúng tôi sẽ áp dụng vòng lặp và cố gắng tìm các yếu tố chính của số đã cho.

# 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)

Output:

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

Explanation:

Ở đây trước tiên, chúng tôi đã nhập thư viện toán học từ mô -đun Python. Thứ hai, chúng tôi đã lấy đầu vào N làm số và được gọi là hàm PrimeFactors (). Thứ ba, chúng tôi đã lấy PrimeFactors () làm hàm và được áp dụng trong khi vòng lặp và kiểm tra xem modulo của số sẽ đến 0 bằng cách chia nó cho 2. thứ tư, vòng lặp trong khi sẽ được thực thi cho đến khi số đồng đều và chia cho 2 và In nó và chia số cho 2 tại mỗi lần lặp. Sau đó, chúng tôi sẽ áp dụng vòng lặp For từ ‘I = 3, cho đến khi căn bậc hai của N+1. Sau đó, một lần nữa chúng tôi sẽ áp dụng trong khi vòng lặp bên trong vòng lặp và kiểm tra điều kiện. Cuối cùng, nếu N lớn hơn 2 thì chúng ta đã in số. Do đó, tất cả các yếu tố chính của số được in.primefactors(). Thirdly, we have taken primefactors() as the function and applied while loop and checked if the modulo of the number is coming 0 by dividing it by 2. Fourthly, the while loop will be executed till the number is even and divisible by 2 and printing it and divide the number by 2 at each iteration. After that, we will apply the for loop from ‘i=3’ till the square root of n+1. Then again we will apply while loop inside the for loop and check the condition. At last, if n is greater than 2 then we have printed the number. Hence, all the prime factors of the number get printed.

2. Chỉ sử dụng cho vòng lặp

Trong chương trình này, chúng tôi sẽ sử dụng cho Loop chỉ để tìm ra các yếu tố chính của số đã cho. Chúng tôi sẽ áp dụng nhiều vòng cho các vòng và cố gắng tìm các yếu tố chính của số đã cho.

#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)

Output:

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

Explanation:

Trong ví dụ này, chúng tôi sẽ chỉ sử dụng cho vòng lặp. Đầu tiên, chúng tôi đã lấy đầu vào từ người dùng là n. Thứ hai, chúng tôi đã áp dụng vòng lặp cho I = 2 đến I = N+1. Sau đó, chúng tôi sẽ kiểm tra xem modulo của giá trị của i và số bằng 0. sau đó chúng tôi giữ giá trị đếm = 1 và một lần nữa áp dụng vòng lặp bên trong vòng lặp for từ j = 2 đến j = i // 2+ 1. và kiểm tra điều kiện đã cho. Nếu điều kiện thỏa mãn giá trị đếm được đặt thành 0 và chúng tôi phá vỡ câu lệnh. Chúng tôi ra khỏi vòng lặp và kiểm tra điều kiện nếu đếm == 1 và in giá trị của i. Do đó, các nguyên tắc được in với giá trị đơn lẻ của chúng.printed with the single-single value of them.

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
0

3. Hệ số nguyên tố của một số trong Python chỉ sử dụng trong khi vòng lặp

Trong chương trình này, chúng tôi sẽ chỉ sử dụng một vòng lặp trong thời gian để tìm ra các yếu tố chính của số đã cho. Chúng tôi sẽ áp dụng nhiều vòng trong khi các vòng lặp và cố gắng tìm các yếu tố chính của số đã cho.

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
1

Output:

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
2

Explanation:

Trong ví dụ này, chúng tôi sẽ chỉ sử dụng một vòng lặp trong thời gian. Đầu tiên, chúng tôi đã lấy đầu vào từ người dùng là n. Thứ hai, chúng tôi sẽ đặt giá trị i là 1. Thứ ba, chúng tôi sẽ áp dụng một vòng lặp trong thời gian với điều kiện kiểm tra vì tôi sẽ nhỏ hơn hoặc bằng n. Bên trong vòng lặp, chúng tôi sẽ đặt giá trị C là 0 và áp dụng IF và trong khi điều kiện trong đó. Cuối cùng, chúng tôi sẽ kiểm tra xem giá trị của C có bằng 2 hay không thì chúng tôi in giá trị của i. Do đó, các yếu tố chính được in với giá trị đơn lẻ của chúng.printed with the single-single value of them.

def division(c):
    num, start = c
    for i in range(start, int(num**0.5)+1):
        if num % i == 0:
            return (num//i, i)
    return None
3

Sự kết luận

Trong hướng dẫn này, chúng ta đã thấy cách tìm các yếu tố chính của số với 3 phương pháp khác nhau. Tất cả các phương pháp được giải thích chi tiết với sự trợ giúp của các ví dụ và lời giải thích của chúng. Bạn có thể sử dụng bất kỳ phương pháp nào bạn thích theo nhu cầu của bạn.

Làm thế nào để bạn tìm thấy số lượng các yếu tố chính trong Python?

Đầu ra chương trình cũng được hiển thị bên dưới ...
n = int (input ("nhập một số nguyên:")) in ("các yếu tố là:") i = 1 while (i
Trường hợp 1: Nhập một số nguyên: 25 yếu tố là: 5 Trường hợp 2: Nhập số nguyên: 200 yếu tố là: 2 5 ..

Làm thế nào để bạn đếm các yếu tố của một số trong Python?

Làm thế nào để tìm các yếu tố của một số trong Python..
số = 4 ..
các yếu tố = [].
cho toàn bộ_number trong phạm vi (1, số + 1):.
Nếu số % toàn bộ_number == 0:.
các nhân tố.Phụ lục (-whole_number) nối cả yếu tố và nghịch đảo ..
các nhân tố.nối (Whole_number).
print(factors).

Làm thế nào để bạn tính toán các yếu tố chính?

Thuật toán đơn giản nhất để tìm các yếu tố chính của một số là tiếp tục chia số ban đầu cho các yếu tố chính cho đến khi chúng ta có phần còn lại bằng 1. Ví dụ: yếu tố chính của chúng ta nhận được, 30/2 = 15, 15/15/3 = 5, 5/5 = 1. Vì chúng tôi nhận được phần còn lại, nó không thể được thêm vào nhân tố.keep on dividing the original number by prime factors until we get the remainder equal to 1. For example, prime factorizing the number 30 we get, 30/2 = 15, 15/3 = 5, 5/5 = 1. Since we received the remainder, it cannot be further factorized.