Viết chương trình pascal, nhập n từ bàn phím đếm xem có bao nhiêu số chính phương từ 1 đến n, sử dụng câu lệnh while-do 22/07/2021 Bởi Melody Viết chương trình pascal, nhập n từ bàn phím đếm xem có bao nhiêu số chính phương từ 1 đến n, sử dụng câu lệnh while….do
minhgiang68049 27/12/2020 uses crt; var n,i,dem:longint; begin clrscr; write(‘Nhap so nguyen duong n: ‘);readln(n); for i:=1 to n do if sqrt(i)=trunc(sqrt(i)) then dem:=dem+1; writeln(‘Co ‘,dem,’ so chinh phuong’); readln end. Bình luận
program so_chinh_phuong; uses crt; var n,i,d:integer; begin clrscr; write(‘Nhap n: ‘); readln(n); i:=1; d:=0; while i<=n do begin if sqr(trunc(sqrt(i)))=i then d:=d+1; i:=i+2*d+1; end; write(‘Tu 1 den ‘,n,’ co ‘,d,’ so chinh phuong’); readln; end. *Lưu ý: i:=i+2*d+1; Có thể bạn sẽ thắc mắc chỗ này Dãy số chính phương cũng có quy luật: 1 4 9 16 25 36 49 … i=1; d=0; i=1 là số chính phương nên d=d+1=0+1=1, i=i+2*d+1=1+2*1+1=4 i=4 là số chính phương nên d=d+1=1+1=2, i=i+2*d+1=4+2*2+1=9 ….. Như thế ta không cần chỉ tăng i thêm 1 đơn vị, nó sẽ nhanh hơn nhiều. Còn về sqr(trunc(sqrt(i)))=i ví dụ i=4 sqrt(4)=2; trunc(2)=2; sqr(2)=4=i ban đầu nên là số chính phương Ví dị i=6 sqrt(6)=2.449….. ; trunc(2.449…)=2; sqr(2)=4 khác i nên không phải số chính phương $\text{Dark Angles}$ Bình luận
uses crt;
var n,i,dem:longint;
begin
clrscr;
write(‘Nhap so nguyen duong n: ‘);readln(n);
for i:=1 to n do if sqrt(i)=trunc(sqrt(i)) then dem:=dem+1;
writeln(‘Co ‘,dem,’ so chinh phuong’);
readln
end.
program so_chinh_phuong;
uses crt;
var n,i,d:integer;
begin
clrscr;
write(‘Nhap n: ‘); readln(n);
i:=1; d:=0;
while i<=n do
begin
if sqr(trunc(sqrt(i)))=i then d:=d+1;
i:=i+2*d+1;
end;
write(‘Tu 1 den ‘,n,’ co ‘,d,’ so chinh phuong’);
readln;
end.
*Lưu ý:
i:=i+2*d+1;
Có thể bạn sẽ thắc mắc chỗ này
Dãy số chính phương cũng có quy luật:
1 4 9 16 25 36 49 …
i=1; d=0;
i=1 là số chính phương nên d=d+1=0+1=1, i=i+2*d+1=1+2*1+1=4
i=4 là số chính phương nên d=d+1=1+1=2, i=i+2*d+1=4+2*2+1=9
…..
Như thế ta không cần chỉ tăng i thêm 1 đơn vị, nó sẽ nhanh hơn nhiều.
Còn về sqr(trunc(sqrt(i)))=i
ví dụ i=4
sqrt(4)=2; trunc(2)=2; sqr(2)=4=i ban đầu nên là số chính phương
Ví dị i=6
sqrt(6)=2.449….. ; trunc(2.449…)=2; sqr(2)=4 khác i nên không phải số chính phương
$\text{Dark Angles}$