Thuật Toán Phân Tích Một Số Ra Thừa Số Nguyên Tố

Bài tân oán so sánh quá số ngulặng tố, xuất xắc nói không hề thiếu hơn là so với số tự nhiên N kết quả các vượt số ngulặng tố là một trong bài tập lập trình sẵn cơ bạn dạng hay được áp dụng trong những bài xích thi nhập môn lập trình. Trong bài xích share này, Lập trình ko cực nhọc vẫn cùng các bạn đi tìm kiếm phát âm và giải quyết và xử lý bài xích tân oán so sánh quá số nguyên tố này nhé.

Bạn đang xem: Thuật toán phân tích một số ra thừa số nguyên tố

1. Đề bài bác phân tích quá số nguyên tố

Nếu chúng ta chú ý tên bài xích toán, “phân tích vượt số nguyên tố” vẫn sở hữu sẵn ý nghĩa của bài bác toán thù. “vượt số” gồm ngơi nghỉ trong câu: ước ao search một quá số không biết, ta lấy tích chia mang lại quá số đang biết ^^; Chẳng hạn, 5 cùng 4 là những quá số trong phxay nhân 5×4 = trăng tròn. “ngulặng tố” chỉ rằng những thừa số vẫn luôn là số nguyên ổn tố, bạn demo cơ mà xem!

Như vậy, để dễ dàng tưởng tượng, chúng ta sẽ có phần nhiều ví dụ sau:

8 = 23100 = 22 * 5999 = 33 * 37

Vậy mục tiêu của các bạn là: Nhập lệ một số trong những nguyên dương N, hãy so với số N các thành tích những quá số ngulặng tố(chính là phần phía sau lốt bằng).

2. Ý tưởng giải bài toán thù so với vượt số nguyên ổn tố

Rất đơn giản, trả sử bạn phải đối chiếu số N thành tựu các thừa số nguyên ổn tố. quý khách chỉ cần thực hiện chia số N cho những số nguyên ổn tố trong khúc <2; N>. Với từng số ngulặng tố kia, đếm chu kỳ mà số N phân tách không còn. Tất nhiên, sau các lần chia cho số i, số N của chúng ta đã giảm sút i lần.

Một ví dụ sinh động hơn, xét N = 300

300 2 150 2 75 5 15 5 3 3 1

Lúc kia, 300 = 22 * 52 * 3. Nhưng chưa phải Lúc N = 1 bọn họ đã dừng đâu nhé. Xét một ví dụ không giống coi sao:

Giả sử N = 999, Lúc N chỉ với 37, mà lại 37 là số nguyên tố, nên ta dừng quá trình phân chia.

999 3 333 3 111 3 37 37 1

Khi đó, 999 = 33 * 37.

Nói một bí quyết bao quát hóa hơn, các bạn sẽ ngừng quá trình phân tách Khi số phân tách lớn hơn N. Nói phương pháp khác, chừng nào N không bằng 1, họ liên tiếp quá trình phân tách.

Xem thêm: Tải Avast 2015 Full Crack Key Tới 2050, Avast Premier 2015 License Key Crack

3. Code đối chiếu quá số nguim tố

Lời giải xúc tiến cùng với ngữ điệu C:

Cũng với ý tưởng này, cơ mà code bằng C++ đang như sau:

Cả 2 code bên trên Khi chạy sẽ sở hữu output giống hệt, đó là một công dụng chạy thử:

Nếu chúng ta biết về cấu trúc tự điển. quý khách hàng rất có thể sử dụng bọn chúng để đếm cùng lưu lưu giữ để ship hàng Khi đề nghị sau đây. Với cách này, chúng ta cũng có thể sử dụng chỉ số mảng để đếm: Chẳng hạn như số 126, mảng đếm là mảng a, Khi đó: a<2> = 1, a<3> = 2, a<7> = 1. Tuy nhiên, phương pháp này còn có hạn chế là với số N bự, vẫn tốn không hề ít bộ lưu trữ.

Chạy test cùng với N = 999 xem sao:

vì thế, 999 = 3^3 * 37.

Một giải pháp về tối ưu hơn và tiện lợi rộng là áp dụng cấu tạo maps vào C++. Chúng ta rất có thể code như sau:

Lưu ý: Lời giải này áp dụng vươn lên là tự động chỉ có vào C++ 11 trsinh hoạt lên. Nếu bạn muốn chạy được thì nên cần thêm flag: std=c++11.

Hoặc nếu khách hàng dùng Dev C++, hãy vào Tools -> Compile Options với lựa chọn như hình họa sau:

*
Cài đặt C++11 cho Dev C++

vì thế, tôi đang xong xuôi bài share đối chiếu thừa số nguyên tố này. Hi vọng rằng những bạn đã sở hữu được mọi kiến thức thật hữu dụng. Mọi thắc mắc, hãy để lại tại mục phản hồi, tôi sẽ giúp đỡ bạn hầu như gì hoàn toàn có thể.

> Ttê mê gia forum Lập Trình Không Khó để không bỏ lỡ gần như nội dung bài viết mới nhất của admin nhé.

Các nội dung bài viết vào khóa họcBài trước: Bài 22. Lệnh switch case trong CBài sau: Bài 24. Tìm số hòn đảo ngược vào C/C++