Số Hoàn Hảo Là Gì? Một Số Bài Toán Tìm Số Hoàn Hảo
Có thể bạn quan tâm
- Sign in / Join
Khi tiếp cận với lập trình thì bài toán tìm số hoàn hảo là một trong số các bài toán được xem là bài căn bản và kinh điển của lập trình. Hôm nay chúng ta sẽ cũng tìm hiểu về chủ đề này.
Số hoàn hảo là gì?
Một số được gọi là số hoàn hảo nếu đó là một số nguyên dương và có tổng các ước của nó bằng chính nó.
Ví dụ 6=1+2+3=1*2*3
Ngoài ra số hoàn hảo chẵn còn có công thức: Nếu n là số nguyên tố thì 2n-1(2n -1)=> là số hoàn chỉnh (hoàn hảo)
Ví du: 6 là số hoàn hảo tương ứng với n=2.
Một số ví dụ về bài toán tìm số hoàn hảo.
Ví dụ 1: Nhập một số nguyên dương từ bàn phím và kiểm tra xem đó có phải là số hoàn hảo hay không.
Thuật toán: Tìm các ước của số vừa nhập và kiểm tra xem tổng của các ước có bằng số vừa nhập hay không.
Code C/C++:
#include<stdio.h> #include<conio.h> #include<math.h> void main() { int x; printf("Nhap mot so nguyen duong \n"); scanf("%d", &x); int s = 0; for (int i = 1; i < x; i++) /* chạy từ 1 đến < x vì không thể chia cho 0 và vì x%x =0 nhưng x không thể là ước của x */ if (x%i == 0) s += i; if (s == x) printf("%d la so hoan hao", x); else printf("%d khong phai la so hoan hao", x); getch(); }Kết quả:
Nhap mot so nguyen duong
4
4 khong phai la so hoan hao
Nhap mot so nguyen duong
6
6 la so hoan hao
Ví dụ 2: Tìm và xuất ra màn hình tất cả các số hoàn hảo có trong một khoảng [A,B].
Thuật toán:
Kiểm tra từ A=>B, nếu số nào thỏa mãn là số hoàn hảo thì xuất ra màn hình.
Để kiểm tra thì chúng ta cần có 1 hàm kiểm tra số hoàn hảo.
Code C/C++:
Hàm kiểm tra.
int KTSHH(int n) { int s = 0; for (int i = 1; i < n; i++) if (n%i == 0) s += i; if (s == n) return 1; // đúng trả về 1 else return 0; // sai trả về 0 }Hàm liệt kê số hoàn hảo có trong 1 khoảng [A,B] (Xem tiếp ở trang sau)
RELATED ARTICLESMORE FROM AUTHOR
C/C++Sự khác nhau giữa Inline function và Macro trong C
C/C++Trong ngôn ngữ C/C++ có bao nhiêu vùng nhớ (Memory layout)
C/C++Cấu trúc dữ liệu danh sách nhân viên
C/C++Tổng quan File trong C
C/C++Cấu trúc kiểu dữ liệu sinh viên
C/C++Cấu trúc mô tả một điểm trên tọa độ xOy
2 COMMENTS
-
cho mình cách tìm số hoàn hảo của dãy số (1+2+…+20=210) khi mình biết số tổng là 210 thì mình muốn biết các số được cộng lại có phải từ 1 đến 20 không?
Log in to leave a comment -
6 cũng là ước của 6
Log in to leave a comment
LEAVE A REPLY Cancel reply
Log in to leave a comment
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Danh sách các bài học
Các kiểu dữ liệu cơ bản trong ngôn ngữ C/C++
Mr Good - April 16, 2016 0Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012
April 16, 2016Biến-Hằng-Câu lệnh và biểu thức trong C/C++
April 16, 2016Cấu trúc IF-ELSE
April 16, 2016Cấu trúc switch – case
April 16, 2016Vòng lặp For
April 16, 2016Cấu trúc While, Do-while
April 16, 2016Cách sử dụng hàm trong lập trình
April 16, 2016Mảng một chiều
April 16, 2016 Load moreBài viết mới nhất
DownloadDownload Cisco Packet Tracer
Windows 10Hướng dẫn cài đặt webserver trên localhost để chạy wordpress
HPEHướng dẫn cấu hình IP ILO máy chủ HP DL380 Gen10
CentOSCentOS 8 – Giới thiệu về hệ điều hành Linux (P1)
Load more © Copyright 2016, All Rights Reserved. Donations are always appreciated! MEW: 0x296f1a39d5Ca3cb83C76724eA38af3B90B90109D MORE STORIESHướng dẫn sử dụng biểu đồ trong Excel
Mr Good - June 6, 2016 0Ví dụ về chuỗi trong C# (phần 2)
Nguyễn Văn Hiếu - August 15, 2016 0Từ khóa » Số Hoàn Hảo C++ Là Gì
-
Kiểm Tra Số Hoàn Hảo Trong C++
-
Thuật Toán Kiểm Tra Số Hoàn Hảo Trong C++ - Freetuts
-
Kiểm Tra Số Hoàn Hảo Trong Lập Trình C/C++
-
[C++] Số Hoàn Hảo
-
Cách Kiểm Tra Số Hoàn Hảo Bằng Code C/C++ - Lập Trình Không Khó
-
C++ - Số Hoàn Hảo - YouTube
-
Cách Kiểm Tra Số Hoàn Hảo Trong Lập Trình C/C++
-
Viết Chương Trình In Ra Các Số Hoàn Hảo C++ - Hỏi Đáp
-
Kiểm Tra Một Số Có Phải Là Số Hoàn Hảo Hay Không Trong C/C++?
-
In Ra Các Số Hoàn Hảo Bé Hơn N - Dạy Nhau Học
-
Viết Chương Trình Kiểm Tra Số N Có Phải Là Số Hoàn Thiện Không?
-
[C++] Số Hoàn Hảo - Kiến Thức 24h