Bài tập tìm số hoàn hảo trong pascal năm 2024

Một số có tỗng các ước nhỏ hơn nó bằng chính nó dc gọi là số hoàn chỉnh.VD 6 có ước nhỏ hơn nó là 1,2,3. Tổng là 1+2+3=6.Viết chương trình xét xem một số n dược nhập từ bàn phím có phải là số hoàn chỉnh không. PROGRAM hoanthien; VAR n:INTEGER; FUNCTION kiemtra(x:INTEGER):BOOLEAN; VAR tam,i:INTEGER; BEGIN tam:=0; kiemtra:=FALSE; FOR i:= 1 TO (x DIV 2) DO IF x MOD i = 0 THEN tam:=tam+i; IF tam = x THEN kiemtra:=TRUE; END; BEGIN writeln('Nhap so can kiem tra '); readln(n); IF kiemtra(n) THEN writeln('So ',n,' la so hoan thien') ELSE writeln('So ',n,' khong phai la so hoan thien'); readln; END.

Bài tập tìm số hoàn hảo trong pascal năm 2024
Nhãn: Bài tập Pascal, Pascal nâng cao
Bài tập tìm số hoàn hảo trong pascal năm 2024

Trong một buổi học toán Bờm được học khái niệm về số có tính chất đặc biệt. Số hoàn hảo là số có tổng các ước trừ nó ra thì bằng chính nó. Ví dụ: Số 6 là số hoàn hảo vì nó có tổng các ước 1 + 2 + 3 = 6, số 8 không phải là số hoàn hảo vì 1 + 2 + 4 = 7 ≠8.

Yêu cầu: Cho dãy số a1, a2,... an. Hãy giúp Bờm đếm xem trong dãy có bao nhiêu số có tổng các chữ số là số hoàn hảo.

Dữ liệu vào: Từ file BAI2.INP gồm:

- Dòng đầu tiên là số nguyên dương n (n ≤ 100). - n dòng tiếp theo ghi n số nguyên a1, a2,... an (0 ≤ ai ≤109).

Kết quả: Ghi ra file BAI2.OUT gồm: Một dòng duy nhất là kết quả của bài toán

program sohoanhao;

uses crt;

var N,i,dem:longint;

a:array[1..100] of longint;

f1,f2:text;

function sohoanhao(n:longint):boolean;

var S,i:longint;

shh:boolean;

Begin

S:=0;shh:=true;

for i:=1 to n-1 do if n mod i = 0 then S:=S+i;

if n<>S then shh:=false;

sohoanhao:=shh;

End;

{--------}

BEGIN

assign(f1,'sohoanhao.inp');reset(f1);

assign(f2,'sohoanhao.out');rewrite(f2);

readln(f1,N); dem:=0;

for i:=1 to N do

Begin

readln(f1,a[i]);

if sohoanhao(a[i]) then inc(dem);

End;

write(f2,dem);

close(f1);close(f2);

END.

Bài 2. Số chính phương (Năm 09-10)

Số chính phương là số có thể triển khai thành bình phương của một số khác.

Ví dụ: 9, 16 là các số chính phương vì 9 = 32; 16 = 42.

Tính tổng các số chính phương trong dãy số tự nhiên liên tiếp 1, 2, 3, ..., N (N <= 30000).

Dữ liệu vào: Từ file văn bản bai1.inp: chứa một số tự nhiên n.

Kết quả: Ghi ra file văn bản bai1.out: Chứa một số là tổng của các số chính phương.

Ví dụ:

bai1.inp bai1.out

10 14 chương trình:

uses crt;

var n,i,s:longint;

f1,f2:text;

FUNCTION chinhphuong(n:longint):boolean;

var cp:boolean;

i:longint;

Begin

cp:=false;

for i:=1 to n do if (n div i = i) and (n mod i = 0) then cp:=true;

chinhphuong:=cp;

End;

{-------}

Begin

assign(f1,'chinhphuong.inp');reset(f1);

assign(f2,'chinhphuong.out');rewrite(f2);

s:=0;

readln(f1,n);

for i:=1 to n do if chinhphuong(i) then s:=s+i;

write(f2,s);

close(f1);close(f2);

END.

  • Tweet
  • Share
  • Share
  • Share
  • Share

Sign up here with your email