Bài
1. Số hoàn hảo (Năm 11-12)
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).
- 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:
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.
Sign up here with your email
2 nhận xét
Write nhận xétCũng đc bạn ạ. Cố gắng phát huy.
Replytốt lắm bn ơi
ReplyConversionConversion EmoticonEmoticon