[help] sắp xếp dãy và tính tổng

I

informatics

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

bài 1:hãy sắp xếp q dãy số do người dùng nhập vào( nhớ in ra màn hình)
bài 2:hãy lập trình in ra màn hình các số nguyên tố từ 1 đến 100
bài này nêu hộ em luôn cả nguyên lý tìm số nguyên tố từ 1 đến 100 hộ em cái :d
 
M

marik

1, Sắp xếp q dãy số là sao?

2. Ta sẽ làm một hàm kiểm tra tính nguyên tố là xong

vả i:integer;
function nto(k: integer): boolean;
var kt: boolean;
j:integer;
begin
kt=true;
for j:= 2 to round(sqrt(k)) do if (k mod j =0) then
begin
kt=false;
break;
end;
nto=kt;
end;
begin
for i:=1 to 100 do if nto(i) then write(i:3);
readln;
end.
 
Last edited by a moderator:
I

informatics

cũng tương tự như sắp xếp n dãy số
n là số được nhập vào từ bàn phím
bài 2
em muốn được làm theo kiểu for...do cơ
 
I

informatics

chết :D
em nhầm
là n số :D anh có nick yh! không ?
vào đó sẽ dễ hơn
:D
bài 2
em không muốn dùng hàm
mà làm luôn
 
M

marik

1. sắp xếp thì dùng nổi bọt là dễ và nhanh nhất

for i:=1 to q-1 do
for j:=q downto i+1 do
begin {sắp xếp tăng dần}
if a[j]<a[j-1] then
begin
tg=a[j];
a[j]:=a[j-1]
a[j-1]=tg;
end;
end;

phần nhập và in chắc em tự làm được

2. chỉ cần sửa lại 1 chút thôi

var i,j:integer;
kt:boolean;
begin
for i:=1 to 100 do
begin
kt:= true;
for j:=2 to round(sqrt(i)) do if (i mod j = 0) then
begin
kt=false;
break;
end;
if kt then write(i:3);
end;
readln;
end.

Nếu em làm theo cách này thì chỉ được 1 nửa điểm thôi.
Có gì cần hỏi thì cứ pm trên diễn đàn, ym giờ anh ít dùng rồi!
 
H

hoangha8394

Cách in ra những số nguyên tố từ 1->100 thì bạn có thể dùng sàng số nguyên tố .Đánh dấu tất cả các số nguyên tố lại xong in ra thui :-" .Tư tưởng thế này:đầu tiên đánh dấu số 2 là số nguyên tố d[2]=0;đánh dấu tất cả các số chia hết cho 2 <=100;d=1;

i:=2;
repeat
if (d=0) then
begin
j:=2;
while (j*i<=100)and(d[i*j]=0) do
begin
d[i*j]=1;
inc(j);
end;
end;
inc(i):
until i>trunc(sqrt(100));

// in ra màn hình
for i:=1 to 100 do
if d=0 then writeln(fo,i);
 
P

pe_kid_55

Thêm hàm kiểm tra nguyên tố nè:
Function Kt_ngto(x:integer):boolean;
Var
i:integer;
kq:boolean;
Begin
kq:=true;
If (x=1) or (x=0) then
-----kq:=false;
For i:=2 to x-1 do
-----If x mod i = 0 then
----------kq:=false;
Kt_ngto:=kq;
End.

Đọc thấy hay nhớ thank nha!
 
A

auauau97

Hàm kiểm tra số nguyên tố:
Function NT(a:longint):boolean;
Var
i:longint;
Begin
For i:=2 to round(sqrt(a)) do
If a mod i=0 then
Begin
NT:=false;
Exit;
End;
NT:=true;
End;
 
Top Bottom