Hướng dẫn how do you list all the factors of a number in python? - làm thế nào để bạn liệt kê tất cả các thừa số của một số trong python?

Mã nguồn

# Python Program to find the factors of a number

# This function computes the factor of the argument passed
def print_factors(x):
   print("The factors of",x,"are:")
   for i in range(1, x + 1):
       if x % i == 0:
           print(i)

num = 320

print_factors(num)

Đầu ra

The factors of 320 are:
1
2
4
5
8
10
16
20
32
40
64
80
160
320

Lưu ý: Để tìm các yếu tố của một số khác, hãy thay đổi giá trị của num. To find the factors of another number, change the value of num.

Trong chương trình này, số có hệ số sẽ được tìm thấy được lưu trữ trong num, được chuyển đến hàm

The factors of 320 are:
1
2
4
5
8
10
16
20
32
40
64
80
160
320
1. Giá trị này được gán cho biến X trong
The factors of 320 are:
1
2
4
5
8
10
16
20
32
40
64
80
160
320
1.

Trong hàm, chúng tôi sử dụng vòng

The factors of 320 are:
1
2
4
5
8
10
16
20
32
40
64
80
160
320
3 để lặp lại từ i bằng x. Nếu x hoàn toàn chia hết bởi tôi, thì đó là yếu tố của x.

Dưới đây là một ví dụ nếu bạn muốn sử dụng số số nguyên tố để đi nhanh hơn rất nhiều. Những danh sách này rất dễ tìm thấy trên internet. Tôi đã thêm ý kiến ​​trong mã.

# http://primes.utm.edu/lists/small/10000.txt
# First 10000 primes

_PRIMES = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 
        31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 
        73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 
        127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 
        179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 
        233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 
        283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 
        353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 
        419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 
        467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 
        547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 
        607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 
        661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 
        739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 
        811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 
        877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 
        947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 
# Mising a lot of primes for the purpose of the example
)


from bisect import bisect_left as _bisect_left
from math import sqrt as _sqrt


def get_factors(n):
    assert isinstance(n, int), "n must be an integer."
    assert n > 0, "n must be greather than zero."
    limit = pow(_PRIMES[-1], 2)
    assert n <= limit, "n is greather then the limit of {0}".format(limit)
    result = set((1, n))
    root = int(_sqrt(n))
    primes = [t for t in get_primes_smaller_than(root + 1) if not n % t]
    result.update(primes)  # Add all the primes factors less or equal to root square
    for t in primes:
        result.update(get_factors(n/t))  # Add all the factors associted for the primes by using the same process
    return sorted(result)


def get_primes_smaller_than(n):
    return _PRIMES[:_bisect_left(_PRIMES, n)]

Bạn có thể đã nghe về bội số và các yếu tố của một số trong Python. Nếu bạn đang đọc blog này, tôi chắc chắn có thể nói với bạn rằng bạn đang tìm cách viết một chương trình để tìm các yếu tố của một số. Trong bài viết này, chúng tôi sẽ thảo luận và thực hiện một chương trình để tìm các yếu tố của một số trong Python.

Các yếu tố của một số là gì?

Một số n được cho là yếu tố của một số m khác nếu n phân chia hoàn toàn M. nói cách khác, nếu chúng ta được cho hai số n và m và khi chia M cho n, không còn lại thì n được gọi là hệ số của M. Bạn cũng có thể dễ dàng xác định rằng bất kỳ yếu tố nào của một số luôn luôn nhỏ hơn hoặc bằng chính số.

Chẳng hạn, 5 là hệ số 20 là 20 chia cho 5 cho 4 làm đầu ra không còn lại. & NBSP;

Hướng dẫn how do you list all the factors of a number in python? - làm thế nào để bạn liệt kê tất cả các thừa số 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?

Để tìm các yếu tố của một số m, chúng ta có thể chia m cho các số từ 1 thành M. trong khi chia m, nếu một số n không còn lại, chúng ta sẽ nói rằng n là một yếu tố của M. cho mục đích này, chúng ta có thể sử dụng A cho vòng lặp trong Python như sau.

factors = set()
M = 120  # number whose factors we need to find
for N in range(1, M + 1):
    if M % N == 0:  # remainder is zero
        factors.add(N)
print("Factors of {} are {}".format(M, factors))

Output:

Factors of 120 are {1, 2, 3, 4, 5, 6, 8, 40, 10, 12, 120, 15, 20, 24, 60, 30}

Trong ví dụ trên, chúng tôi đã tuyên bố một tập hợp các yếu tố được đặt tên để lưu trữ các yếu tố của số M. Nếu bất kỳ số nào rời khỏi phần còn lại 0 khi chia m, chúng tôi sẽ thêm số vào tập hợp. Sau khi thực hiện vòng lặp For, chúng tôi nhận được một tập hợp tất cả các yếu tố của số M.

Như chúng ta đã biết, yếu tố duy nhất của số m lớn hơn m/2 là chính m. Vì vậy, chúng ta có thể bỏ qua phân chia M cho các số lớn hơn M/2 để tìm các yếu tố M hiệu quả hơn như sau.

factors = set()
M = 120  # number whose factors we need to find
factors.add(M)  # a number is a factor of itself
for N in range(1, M // 2 + 1):
    if M % N == 0:  # remainder is zero
        factors.add(N)
print("Factors of {} are {}".format(M, factors))

Output:

Factors of 120 are {1, 2, 3, 4, 5, 6, 8, 40, 10, 12, 15, 20, 120, 24, 60, 30}

Chúng tôi biết rằng các yếu tố của một số xảy ra theo cặp. Ví dụ: các yếu tố của số m có thể có trong các cặp (1, m), (2, m/2), (3, m/3), (4, m/4) cho đến (m1/2, m1 /2). Vì vậy, thay vì sử dụng một vòng lặp For để kiểm tra các yếu tố cho đến M/2, chúng tôi sẽ kiểm tra các yếu tố cho đến M1/2. Bất cứ khi nào chúng tôi tìm thấy một yếu tố, chúng tôi cũng sẽ lưu trữ cặp của nó trong bộ chứa tất cả các yếu tố. Theo cách này, chúng ta có thể tìm thấy các yếu tố của một số trong Python hiệu quả hơn.

factors = set()
M = 120  # number whose factors we need to find
factors.add(M)  # a number is a factor of itself
for N in range(1, M):
    if N * N > M:
        break
    if M % N == 0:  # remainder is zero
        factors.add(N)
        factors.add(M // N)
print("Factors of {} are {}".format(M, factors))

Output:

Factors of 120 are {1, 2, 3, 4, 5, 6, 40, 8, 10, 12, 15, 20, 120, 24, 60, 30}

Sự kết luận

Trong bài viết này, chúng tôi đã thảo luận về ba chương trình để tìm các yếu tố của một số trong Python. Để tìm hiểu thêm về các con số trong Python, bạn có thể đọc bài viết này về số thập phân trong Python. Bạn cũng có thể thích bài viết này về các số phức tạp trong Python.

Khuyến nghị đào tạo Python

Khóa học: Python 3 cho người mới bắt đầu

Hơn 15 giờ nội dung video với hướng dẫn hướng dẫn cho người mới bắt đầu. Tìm hiểu làm thế nào để tạo các ứng dụng trong thế giới thực và làm chủ những điều cơ bản.

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

Chúng tôi chấp nhận đầu vào của người dùng bằng cách sử dụng đầu vào hàm tích hợp () và sau đó chuyển đổi thành một số bằng hàm int () sau đó chúng tôi tìm thấy tất cả các yếu tố của số bằng cách gọi hàm get_all_factors ().Chúng tôi sử dụng hàm in () với hàm định dạng () để xuất kết quả.find all the factors of the number by calling the get_all_factors() function. We use the built-in function print() with format() function to output the results.

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

Sử dụng một vòng lặp để tìm các yếu tố của một số..
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).

Python có chức năng nhân tố không?

Phương thức Factor (), chúng ta có thể tìm thấy các yếu tố của các biểu thức toán học dưới dạng biến bằng cách sử dụng phương thức sympy.factor ().Trả về: Trả về yếu tố biểu thức toán học.sympy. factor() method. Return : Return factor of mathematical expression.