Re: Giải bài tập Pascal *D2T*
Trích dẫn:
Gửi bởi
thanhkhoeo
var j:integer;
function nguyento(z:integer):boolean;
var i:integer;
begin
nguyento:=true;
for i:=1 to (sqrt(z)div 1) do
if z mod i=0 then nguyento:=false;
end;begin
clrscr;
for j:=1 to 300 do if nguyento(j) then
write(j:4);
readln
end.
Anh ơi em chưa học đến cái function vs lại em viết chương trình k chạy đc
Re: Giải bài tập Pascal *D2T*
Trích dẫn:
Gửi bởi
kylong
Nay chỉ học C++ nên anh không nhớ rõ pascal lắm.Em thử cái này xem(Không biết cấu trúc có đúng không.Lâu ngày không học mà c:byebye:):
var n:integer;
begin
clrscr;
for i:=1 to 300 do
write(n:4);
readln
end.
Hôm qua mình nhầm in các số từ 1 đến 300.Bài sửa lại đã test:
uses crt;
var n,i,j,m,k:integer;
begin
clrscr;
write('Nhap vao mot so n=');
readln(n);
writeln('Cac so nguyen to nho hon ',n,' la:');
for i:=1 to n do
begin
k:=0;
m:=round(sqrt(i));
for j:=1 to m do
if i mod j =0 then k:=k+1;
if k=1 then write(i:10);
end;
readln
end.
Re: Giải bài tập Pascal *D2T*
Trích dẫn:
Gửi bởi
panda205
Hôm qua mình nhầm in các số từ 1 đến 300.Bài sửa lại đã test:
uses crt;
var n,i,j,m,k:integer;
begin
clrscr;
write('Nhap vao mot so n=');
readln(n);
writeln('Cac so nguyen to nho hon ',n,' la:');
for i:=1 to n do
begin
k:=0;
m:=round(sqrt(i));
for j:=1 to m do
if i mod j =0 then k:=k+1;
if k=1 then write(i:10);
end;
readln
end.
em cho chạy lại đc rồi anh ạ. nhưng em không hoêir vì sao khi k:=k+1 thì tới k=1 lại dừng lại? từ đầu đã là k=0 rồi mà.
Re: Giải bài tập Pascal *D2T*
Muốn kiểm tra 1 số x có phải là số nguyên tố không thì ta kiểm tra xem trong khoảng từ 1 đến sqrt(x) có bao nhiêu ước của x.Nếu nó có 1 ước là 1 thì khẳng định số x là số nguyên tố.Do vậy trong bài này:
n-Số ngẫu nhiên nhập vào từ bàn phím
i-Biến chạy từ 1 đến n
j-Biến chạy từ 1 đến sqrt(i) để kiểm tra xem j có phải là ước của i không.
k-Biến đếm số ước của i.Giá trị ban đầu cho là 0.Nếu i chia hết cho j thì tăng lên 1.
Do j chạy từ 1 nên luôn có 1 ước là 1 ==>Khi k=1 thì khẳng định số đó là số nguyên tố và thoát ra ngoài thực hiện vòng lặp tiếp theo.