Số Hoàn Hảo Là Gì? Một Số Bài Toán Tìm Số Hoàn Hảo

Sign in Sign in Welcome!Log into your account your username your password Forgot your password? Password recovery Recover your password your email Search Thursday, December 12, 2024
  • Sign in / Join
Sign in Welcome! Log into your account your username your password Forgot your password? Get help Password recovery Recover your password your email A password will be e-mailed to you. sinhvientot.net sinhvientot.net sinhvientot.net sinhvientot.net Home Lập trình C/C++ Số hoàn hảo là gì? một số bài toán tìm số hoàn... Facebook Twitter Pinterest WhatsApp

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

  1. 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
  2. 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 0

Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012

April 16, 2016

Biến-Hằng-Câu lệnh và biểu thức trong C/C++

April 16, 2016

Cấu trúc IF-ELSE

April 16, 2016

Cấu trúc switch – case

April 16, 2016

Vòng lặp For

April 16, 2016

Cấu trúc While, Do-while

April 16, 2016

Cách sử dụng hàm trong lập trình

April 16, 2016

Mảng một chiều

April 16, 2016 Load more

Bài viết mới nhất

Download

Download Cisco Packet Tracer

Windows 10

Hướng dẫn cài đặt webserver trên localhost để chạy wordpress

HPE

Hướng dẫn cấu hình IP ILO máy chủ HP DL380 Gen10

CentOS

CentOS 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 STORIES

Download Cisco Packet Tracer

Mr Good - April 21, 2023 0

Các port thông dụng cần biết – Phần 2

Võ Tình Thương - December 5, 2016 0

Từ khóa » Số Hoàn Hảo C