THUẬT TOÁN TÌM SỐ HOÀN HẢO

     

Thuật toán kiểm soát số hoàn hảo và tuyệt vời nhất trong C/C++. Ứng dụng vào bài toán tìm, liệt kê số tuyệt vời và hoàn hảo nhất trong mảng các số nguyên dương n phần tử, số trả thiện nhỏ hơn n.

Bạn đang xem: Thuật toán tìm số hoàn hảo


1. Số tuyệt đối hoàn hảo là gì?

Số tuyệt đối hoàn hảo (perfect number) hay còn được gọi là số hoàn thành xong là số: nguyên dương mà tổng những ước nguyên dương chấp thuận của nó bởi chính nó.Ước xác định là những ước mà số đó chia hết trừ nó và bao gồm cả số 1.

Ví dụ số hoàn hảo:

6 là số hoàn hảo, các ước chấp nhận của 6: 1, 2, 3Ta bao gồm : 6 = 1 + 2 + 328 là số hoàn hảo: 1 + 2 + 4 + 7 + 14 = 2810 chưa hẳn số hoàn hảo: 1+ 2 + 5 = 8 (khác 10)
*
Công thức tính số hoàn hảo

Ta sẽ giải quyết và xử lý bài toán vận dụng tư tưởng theo đúng định nghĩa. Để tìm tra số nguyên dương n có phải là số hoàn hảo nhất hay không, thuật toán chỉ dẫn ở đây chính là duyệt cùng tìm tất cả các mong của n kế tiếp cộng lại.

Xem thêm: Chân Trời Mới Là Gì ? Dàn Ý Nghị Luận Về Câu Nói Của M

Áp dụng vào lập trình ta sẽ giải quyết và xử lý nó như sau:

Khai báo một trở nên tam = 0; trở thành này sẽ dùng để làm tính tổng những ướcSử dụng vòng lặp i từ 0 đến bé dại hơn n. Giả dụ i là cầu của n (tức là n % i ==0) thì ta cộng tam với i : tam = tam + i;So sánh tam với ntam cùng với 0. Trường hợp tam == n cùng tam !=0 thì tức là số sẽ là số hoàn hảo, trái lại thì không.

Xem thêm: Tóm Tắt Văn Bản Tuyên Ngôn Độc Lập ❤️️17 Mẫu Tóm Tắt Văn Bản Hay

Sẽ có các bạn thắc mắc tại sao ta không xét trường thích hợp n 2. Chất vấn số tuyệt vời và hoàn hảo nhất C/C++

Mình sẽ thực thi hàm kiểm tra một vài nguyên dương n có phải là số trả hảo hay không dựa theo đúng ý tưởng phát minh nêu ở đoạn 1 nhé!

Code C/C++:

// yêu thích kiem tra so hoan haobool kt_hoanhao(int n)int tam =0; // Khai báo biến tạm lưu giữ tổng những ướcfor(int i=1; i i là ước đồng ý của ntam = tam + i; // cộng vào tổng các ướcif(tam !=0 && tam == n) // giả dụ tổng những ước khác 0 và bởi n trả về truereturn true;else // ví như tam không giống n hoặc tam ==0 thì trả về falsereturn false;}Khi có hàm kiểm soát số hoàn thiện, ta hoàn toàn có thể áp dụng vào các bài tập tương ứng. Ví như (in các số hoàn hảo trong mảng, những số ht nhỏ hơn n . . .)

Dưới đây mình xúc tiến chương trình in ra tất cả các số triển khai xong trong mảng vào C++ nhé!

Code C++:

#includeusing namespace std;// tê mê kiem tra so hoan haobool kt_hoanhao(int n)int tam =0;for(int i=1; i>n;cout>a;// In so hoan hao trong dayvoid in_sohoanhao(int a<>, int n){cout

3. Lời kết

Perfect number là 1 dạng bài xích tập hơi hay, nó giúp bạn hiểu hơn về tứ duy lập trình, cách phối kết hợp vòng lặp, câu điều kiện . . . Từ đó giúp bạn cải thiện về năng lực của bản thân. Luyện tập từ rất nhiều thứ bé dại nhất, các bạn sẽ thấy được sự phát triển của mình.

Bài viết của chính mình đến đó là hết, nếu như khách hàng có lời khuyên nhủ gì cho mình hay bất kỳ thắc mắc nào, đừng ngại nhằm lại bình luận xuống phía dưới bài viết nhé!