Kiểu dữ liệu có cấu trúc

NL

Số chính phương được định nghĩa là bình phương của một số. Hãy viết chương trình tính tổng các số chính phương có trong một dãy (a1, a2, ..., am, với m là một số nguyên dương trong khoảng từ 1 đến 107 ).

Yêu cầu:

Dữ liệu vào là file: CP.INP

+ Dòng thứ nhất: Ghi số m (m trong khoảng từ 1 đến 107)

+ Dòng thứ hai ghi m phần tử trong dãy.

Dữ liệu ra là file: CP.OUT

+ Ghi tổng các số chính phương có trong dãy

+ Nếu không có số chính phương trong dãy thì ghi số 0.

Ví dụ:

CP.INP CP.OUT CP.INP CP.OUT

5

2 4 5 7 25

29

4

2 3 1 7

0

Lưu bài làm vào file CP.PAS

NL
8 tháng 4 2017 lúc 21:44

Mình thử trả lời các bạn xem có đúng ko nha!!!

__________

program CP;

var scs,tong,m,i,z,k:longint;

A:array[1..10000000] of longint;

f:text;

begin

assign(f, 'CP.INP');

reset(f);

readln(f,m);

for i:=1 to m do read(f,A[i]);

close(f);

tong:=0;

scs:=0;

for z:=1 to m do

for k:=1 to A[z] do

if (k*k=A[z]) then

begin

scs:=scs+1;

tong:=tong+A[z];

end;

assign(f, 'CP.OUT');

rewrite(f);

if (scs<>0) then writeln(f, tong) else writeln(f, '0');

close(f);

end.

Bình luận (0)

Các câu hỏi tương tự
TL
Xem chi tiết
0H
Xem chi tiết
AN
Xem chi tiết
0H
Xem chi tiết
TA
Xem chi tiết
H24
Xem chi tiết
GH
Xem chi tiết
LH
Xem chi tiết
NC
Xem chi tiết