Phân tích thừa số nguyên tố

Phân tích Thừa số Nguyên tố

🔢 Phân tích Thừa số Nguyên tố

Khám phá thế giới các số nguyên tố và thuật toán phân tích

🎯 Số nguyên tố là gì?

Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có đúng hai ước số: 1 và chính nó. Ví dụ: 2, 3, 5, 7, 11, 13, ...

🔍 Phân tích thừa số nguyên tố

Phân tích thừa số nguyên tố là quá trình biểu diễn một số tự nhiên dưới dạng tích của các số nguyên tố. Theo định lý cơ bản của số học, mọi số tự nhiên lớn hơn 1 đều có một cách phân tích duy nhất thành tích các thừa số nguyên tố.

⚙️ Thuật toán Trial Division

Đây là thuật toán cơ bản nhất để phân tích thừa số nguyên tố:

  • Bắt đầu với số nhỏ nhất i = 2
  • Kiểm tra xem n có chia hết cho i không
  • Nếu có, chia n cho i và ghi nhận i là một thừa số
  • Lặp lại cho đến khi n = 1
  • Tối ưu: chỉ cần kiểm tra đến √n

⏱️ Độ phức tạp

Độ phức tạp thời gian của thuật toán Trial Division là O(√n), với n là số cần phân tích. Đây là thuật toán phù hợp cho các số không quá lớn.

🌟 Ứng dụng thực tế

Phân tích thừa số nguyên tố có nhiều ứng dụng quan trọng trong mật mã học (RSA), toán học rời rạc, và khoa học máy tính.

📱 Hướng dẫn sử dụng

Bước 1: Nhập số

Nhập số cần phân tích vào ô input (từ 2 đến 1,000,000). Ví dụ: 60, 120, 1001...

Bước 2: Phân tích

Nhấn nút "Phân tích" để xem kết quả. Hệ thống sẽ hiển thị:

  • Các thừa số nguyên tố
  • Biểu thức phân tích
  • Từng bước thực hiện chi tiết
  • Trực quan hóa kết quả

Bước 3: Xem chi tiết

Phần "Các bước thực hiện" sẽ mô tả từng bước của thuật toán, giúp bạn hiểu rõ quá trình phân tích.

🔧 Các tính năng khác

  • Lý thuyết: Tìm hiểu kiến thức cơ bản về số nguyên tố
  • Code Python: Xem mã nguồn chi tiết
  • Nhật ký: Theo dõi lịch sử các phép tính
  • Mobile-friendly: Tương thích trên mọi thiết bị

💡 Mẹo sử dụng

Thử với các số đặc biệt như số chính phương (16, 25, 36), số có nhiều thừa số (60, 120, 360), hoặc số nguyên tố (17, 23, 29) để thấy sự khác biệt.

🐍 Mã nguồn Python

def prime_factorization(n):
    """
    Phân tích số n thành tích các thừa số nguyên tố
    Sử dụng thuật toán Trial Division
    """
    factors = []
    steps = []
    original_n = n
    
    # Kiểm tra chia hết cho 2
    while n % 2 == 0:
        factors.append(2)
        steps.append(f"{n} ÷ 2 = {n//2}")
        n = n // 2
    
    # Kiểm tra các số lẻ từ 3 trở đi
    i = 3
    while i * i <= n:
        while n % i == 0:
            factors.append(i)
            steps.append(f"{n} ÷ {i} = {n//i}")
            n = n // i
        i += 2
    
    # Nếu n > 2, thì n là số nguyên tố
    if n > 2:
        factors.append(n)
        steps.append(f"{n} là số nguyên tố")
    
    return factors, steps

def format_factorization(factors):
    """Định dạng kết quả phân tích"""
    from collections import Counter
    
    factor_count = Counter(factors)
    result = []
    
    for factor in sorted(factor_count.keys()):
        count = factor_count[factor]
        if count == 1:
            result.append(str(factor))
        else:
            result.append(f"{factor}^{count}")
    
    return " × ".join(result)

def is_prime(n):
    """Kiểm tra số nguyên tố"""
    if n < 2:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    
    for i in range(3, int(n**0.5) + 1, 2):
        if n % i == 0:
            return False
    return True

# Ví dụ sử dụng
if __name__ == "__main__":
    number = int(input("Nhập số cần phân tích: "))
    
    if number < 2:
        print("Vui lòng nhập số >= 2")
    elif is_prime(number):
        print(f"{number} là số nguyên tố")
    else:
        factors, steps = prime_factorization(number)
        formatted = format_factorization(factors)
        
        print(f"\nSố {number} = {formatted}")
        print(f"Các thừa số: {factors}")
        print("\nCác bước thực hiện:")
        for step in steps:
            print(f"  {step}")

🔧 Cách chạy code:

1. Copy code trên vào file .py

2. Chạy: python prime_factorization.py

3. Nhập số cần phân tích khi được yêu cầu

📋 Nhật ký phân tích

Chưa có phép tính nào được thực hiện

Không có nhận xét nào

Được tạo bởi Blogger.