program thamkhaovn;
uses crt;
var a:longint;
b,n,i:integer;
BEGIN
clrscr;
write('Nhap N: ');
readln(n);
for i:=1 to int(sqrt(n div 2)) do
begin
a:=n-sqr(i);
b:=int(sqrt(a));
if (b*b+i*i)=n then writeln(i,' ',b);
end;
readln;
END.
Chương trình trên được viết theo thuật toán:
- Dùng biến i chạy từ 1 đến căn của n chia 2.
- Cho a là hiệu của phép tính: n trừ i bình phương.
- Thử xem phần nguyên của căn a bình phương cộng i bình phương có bằng n không
- Nếu bằng xuất i và phần nguyên của căn a ra màn hình.
Ví dụ:
Nhap N: 200
Kết quả:
2 14
10 10
Note: Sau khi kiểm tra lại Ad có thấy là chương trình cũ không thể chạy được nên đã chỉnh sửa lại, mong mọi người thông cảm!