Cách tiếp cận tốt nhất để tính hệ số nguyên tố lớn nhất của một số là gì?
Tôi nghĩ rằng hiệu quả nhất sẽ là như sau:
- Tìm số nguyên tố thấp nhất phân chia sạch
- Kiểm tra xem kết quả của phép chia là số nguyên tố
- Nếu không, tìm mức thấp nhất tiếp theo
- Chuyển đến 2.
Tôi dựa trên giả định này để dễ dàng tính toán các thừa số nguyên tố nhỏ. Đây có phải là về phải không? Những cách tiếp cận khác tôi nên xem xét?
Chỉnh sửa: Bây giờ tôi đã nhận ra rằng cách tiếp cận của tôi là vô ích nếu có nhiều hơn 2 yếu tố chính, vì bước 2 thất bại khi kết quả là sản phẩm của hai số nguyên tố khác, do đó cần có thuật toán đệ quy.
Chỉnh sửa lại: Và bây giờ tôi đã nhận ra rằng điều này vẫn hoạt động, bởi vì số nguyên tố tìm thấy cuối cùng phải là số cao nhất, do đó, bất kỳ thử nghiệm nào nữa về kết quả không chính từ bước 2 sẽ dẫn đến một số nguyên tố nhỏ hơn.
1.
tìm bất kỳ số nào phân chia rõ ràng (cho i = 2 đến int (sqr (num))) 2.
chia cho số đó (num = num / i) và lặp lại cho đến khi không tìm thấy gì trong khoảng num là 1. hệ số lớn nhất3.