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

Bài viết này được tạo ra để đề cập đến một số chương trình trong Python, để tìm và in các thừa số của một số do người dùng nhập vào trong thời gian chạy. Dưới đây là danh sách các phương pháp được sử dụng

  • Tìm thừa số của một số bằng vòng lặp while
  • Sử dụng cho vòng lặp
  • Sử dụng chức năng

Lưu ý - Thừa số của một số nói n là số chia hết cho số (n). Ví dụ, thừa số của 12 là 1, 2, 3, 4, 6, 12. Sáu số này chia hết cho 12 không chừa số dư

Tìm thừa số của một số bằng vòng lặp while

Để tìm thừa số của bất kỳ số nào trong Python, bạn phải yêu cầu người dùng nhập một số, sau đó tìm và in ra thừa số của nó như trong chương trình dưới đây. Câu hỏi đặt ra là viết chương trình Python tìm thừa số của một số bằng vòng lặp while. Đây là câu trả lời của nó

print("Enter the Number: ")
num = input()

num = int(num)
print("\nFactors of", num)

i = 1
while i<=num:
    if num%i==0:
        print(i)
    i = i+1

Đây là đầu ra ban đầu được tạo bởi chương trình Python này

find factors of number python

Bây giờ cung cấp đầu vào nói 12 và nhấn phím ENTER để tìm và in tất cả các thừa số của 12 như trong ảnh chụp nhanh bên dưới

factors of number python

Quá trình chạy khô khan của chương trình trên với đầu vào của người dùng 12, diễn ra như sau

  • Giá trị ban đầu, num="12" (do người dùng nhập). Trong Python, mọi thứ nhận được bằng input() được coi là giá trị kiểu chuỗi. Do đó, sử dụng tuyên bố sau
    num = int(num)
    giá trị của num được chuyển thành giá trị kiểu số nguyên. Vậy num=12, và i=1
  • Bây giờ điều kiện (của vòng lặp while) i<=num hoặc 1<=12 được đánh giá là đúng, do đó luồng chương trình sẽ đi vào bên trong vòng lặp
  • Bên trong vòng lặp, điều kiện (của if) num%i==0 hoặc 12%1==0 hoặc 0==0 được đánh giá là đúng, do đó, luồng chương trình đi vào bên trong phần thân của if này và giá trị của i được in dưới dạng một
  • Bây giờ giá trị của tôi được tăng thêm 1. Vì vậy, bây giờ tôi = 2
  • Một lần nữa, điều kiện của vòng lặp while được đánh giá. Đó là điều kiện i<=num hoặc 2<=12 đánh giá là đúng một lần nữa, do đó luồng chương trình lại đi vào bên trong vòng lặp
  • Bên trong vòng lặp, điều kiện (của if) num%i==0 hoặc 12%2==0 hoặc 0==0 lại được đánh giá là đúng, do đó, luồng chương trình lại đi vào bên trong phần thân của nó và giá trị của i được in dưới dạng
  • Giá trị của i được tăng lên. Vì vậy, tôi = 3. Bây giờ điều kiện của vòng lặp while lại được đánh giá. Lần này điều kiện cũng được đánh giá là đúng, do đó luồng chương trình đi vào bên trong vòng lặp
  • Quá trình này tiếp tục cho đến khi điều kiện đánh giá là sai
  • Bằng cách này, tất cả các thừa số của 12 (số do người dùng cung cấp) được in ra, từng cái một

Phiên bản sửa đổi của chương trình trước đó

Đây là phiên bản sửa đổi của chương trình trước đó. Chương trình này sử dụng end để bỏ qua việc chèn một dòng mới tự động bằng print(). Hàm str() được sử dụng để chuyển đổi giá trị thành kiểu chuỗi. Try-ngoại trừ được sử dụng để xử lý đầu vào không hợp lệ

print("Enter a Number: ", end="")
try:
    num = int(input())

    print("\nFactors of " +str(num)+ " are: ", end="")
    i = 1
    while i<=num:
        if num % i == 0:
            print(i, end=" ")
        i = i + 1
    print()
except ValueError:
    print("\nInvalid Input!")

Đây là mẫu chạy với đầu vào của người dùng 42

print factors of number python

Đây là một mẫu khác chạy với đầu vào người dùng không hợp lệ nói 23. 4

python find factors of number

Tìm thừa số của một số bằng for Loop

Chương trình này thực hiện công việc tương tự như chương trình trước, nhưng chương trình này được tạo bằng vòng lặp for, thay vì vòng lặp while. Trước tiên chúng ta hãy xem chương trình

print("Enter a Number: ", end="")
try:
    num = int(input())

    print("\nFactors of " +str(num)+ " are: ", end="")
    for i in range(1, num+1):
        if num % i == 0:
            print(i, end=" ")
    print()
except ValueError:
    print("\nInvalid Input!")

Trong chương trình trên, đoạn mã sau

nói rằng câu lệnh bên trong nó, được thực thi vô số lần với giá trị i từ 1 đến num. Ví dụ: nếu giá trị của num là 12, thì vòng lặp được đánh giá 12 lần với giá trị của i từ 1 đến 12

Tìm thừa số của một số bằng hàm

Chương trình này được tạo bằng hàm do người dùng định nghĩa có tên FindFact(). Hàm này nhận số do người dùng nhập làm đối số và in tất cả các thừa số của nó từ bên trong hàm này

def FindFact(n):
    for i in range(1, n+1):
        if n % i == 0:
            print(i, end=" ")
    print()

print("Enter a Number: ", end="")
try:
    num = int(input())
    print("\nFactors of " +str(num)+ " are: ", end="")
    FindFact(num)
except ValueError:
    print("\nInvalid Input!")

Chương trình này tạo ra đầu ra chính xác giống như chương trình trước

Tìm thừa số của một số bằng Class

Đây là chương trình cuối cùng, được tạo bằng lớp, một tính năng hướng đối tượng của Python

class CodesCracker:
    def FindFact(self, n):
        for i in range(1, n+1):
            if n % i == 0:
                print(i, end=" ")

print("Enter a Number: ", end="")
try:
    num = int(input())
    print("\nFactors of " +str(num)+ " are: ", end="")
    ob = CodesCracker()
    ob.FindFact(num)
    print()
except ValueError:
    print("\nInvalid Input!")

Để truy cập hàm thành viên có tên FindFact() của một lớp có tên CodesCracker, cần có một đối tượng của lớp này. Do đó, một đối tượng ob được tạo từ lớp CodesCracker và sử dụng. (dấu chấm), tôi đã truy cập hàm thành viên của lớp như trong chương trình đã cho ở trên

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

phương thức factor() . Với sự giúp đỡ của sympy. factor(), chúng ta có thể tìm thừa số của các biểu thức toán học ở dạng biến bằng cách sử dụng sympy.

Có một công thức để tìm các yếu tố?

Đối với một số N, có phân tích thừa số nguyên tố là Xa × Yb, chúng ta có tổng số thừa số bằng cách cộng 1 cho mỗi số mũ rồi nhân các thừa số này với nhau. Điều này thể hiện công thức số thừa số là, (a + 1) × (b + 1) , trong đó a và b là các số mũ nhận được sau .