Ví dụ:
- Số 6 có ước nhỏ hơn nó là 1,2,3. Tổng là 1+2+3=6 vậy 6 là số hh.
- Số 8 chia hết cho 1, 2, 4 tổng 1+2+4=7 → 8 không phải là số hh.
- Số 28 chia hết cho 1, 2,4, 7, 14 tổng 1+2+4+7+14=28 → 28 là số hh.
Viết chương trình nhập vào một số n từ bàn phím thông báo ra màn hình số đó có phải là số hoàn hảo hay không [yêu cầu dùng hàm].
PROGRAM SoHoanHao; USES CRT; VAR n:INTEGER; FUNCTION KiemTra[x:INTEGER]:BOOLEAN; VAR tam,i:INTEGER; BEGIN tam:=0; FOR i:= 1 TO [x DIV 2] DO IF x MOD i = 0 THEN tam:=tam+i; IF tam = x THEN KiemTra:=TRUE Else KiemTra:=False; END; BEGIN Clrscr; Write['Nhap so can kiem tra '];Readln[n]; IF KiemTra[n] THEN Writeln['So ',n,' la so hoan hao'] ELSE Writeln['So ',n,' khong phai la so hoan hao']; Readln; END.
4 44 votes
Đánh giá bài viết
Ta định nghĩa số hoàn hảo như sau: Số hoàn hảo là một số tự nhiên mà tổng tất cả các ước tự nhiên thực sự của nó thì bằng chính nó. Vậy ước thực sự là gì? Là các ước không bằng số đó. Hãy tham khảo với
onthihsgngay bên dưới nhé. VD: 6 là số hoàn hảo vì 6 = 1+2+3 Ta hãy cùng tìm hiểu về thuật toán kiểm tra số hoàn hảo và minh họa chúng trong ngôn ngữ lập trình Pascal và Scratch để xem có gì khác biệt không nhé. Ta nhận thấy bài toán này phải sử dụng kĩ thuật cộng dồn để tính tổng [S] các ước thực sự của
số a. Khởi động S =0;Video hướng dẫn viết chương trình kiểm tra số hoàn hảo
Hàm kiểm tra số hoàn hảo
Duyệt từ 1 đến a – 1 số nào là ước của a thì cộng dồn vào S
Thật đơn giản phải không nào, sau đây chúng ta cùng xem minh họa thuật toán này trong Pascal và Scratch có gì khác không nhé.
Sơ đồ thuật toán tìm số hoàn hảo
Dưới đây là sơ đồ thuật toán tìm số hoàn hảo các bạn hãy tham khảo nhé.
Viết chương trình kiểm tra số hoàn hảo trong pascal
Chương trình dưới đây được viết bằng cách sử dụng chương trình con, mình luôn thích sử dụng chương trình con để viết bởi nó giúp mình dễ phân tích một bài toán. Có thể lúc đầu các bạn chưa quen với chương trình con thì thấy nó phức tạp nhưng khi đã thạo rồi thì các bạn sẽ thấy được giá trị hết sức to lớn của nó.
Dữ liệu vào file: hoanhao.inp | Dữ liệu ra file: hoanhao.out |
Chứa số n [n Chủ Đề |