Tin học [Lớp 8] Viết chương trình

Tran Quang Huy

Học sinh
Thành viên
8 Tháng mười 2017
45
7
21
20
Tiền Giang
Trớt quớt. Điều kiện đâu, các số nguyên tố tới mấy hay là các số nguyên tố của dãy số.
 
  • Like
Reactions: S I M O

ka1412

Học sinh chăm học
Thành viên
24 Tháng mười một 2017
874
730
121
Hà Nội
CNN | Life
Mã:
uses crt;
var i,n:integer;s:longint;
function snt(q:integer):boolean;
var w:integer;
begin
    snt := true;
    for w:=2 to trunc(sqrt(i)) do
    if q mod w=0 then snt:=false;
end;
begin
    clrscr;
    write('Nhap n:');readln(n);
    for i:=2 to n do
    if snt(i)=true then s:=s+i;
    write(s);
    readln
end.
 

Tran Quang Huy

Học sinh
Thành viên
8 Tháng mười 2017
45
7
21
20
Tiền Giang
Tại thấy code không có chuẩn hóa nên mới hỏi. Nhưng mà nó đúng. Với lại, mình hỏi về cậu chứ không phải là cái code.
 

Tran Quang Huy

Học sinh
Thành viên
8 Tháng mười 2017
45
7
21
20
Tiền Giang
Chuẩn hóa: nhầm ý. Tối ưu hóa thì đúng hơn. Xin lỗi.
Ý mình muốn nói là code này chỉ sử dụng cho bài này thôi chứ cho vào bài khác là thua.
 

Tran Quang Huy

Học sinh
Thành viên
8 Tháng mười 2017
45
7
21
20
Tiền Giang
Lại nói lộn nữa. Sorry.
Ý mình là cái chương trình con kiểm tra nguyên tố kìa.
 

Tran Quang Huy

Học sinh
Thành viên
8 Tháng mười 2017
45
7
21
20
Tiền Giang
function snt(q:integer):boolean;
var w:integer;
begin
snt := true;
for w:=2 to trunc(sqrt(i)) do
if q mod w=0 then snt:=false;
end;

Tham số là q. Vậy sao không để trunc(sqrt(q)) mà để trunc(sqrt(i)).
Nếu làm thế mà kiểm tra tính nguyên tố của k, trong ct chính không có biến i là sai rồi.
 

ka1412

Học sinh chăm học
Thành viên
24 Tháng mười một 2017
874
730
121
Hà Nội
CNN | Life
Mã:
uses crt;
var i,n:integer;s:longint;
function snt(q:integer):boolean;
var w:integer;
begin
    snt := true;
    for w:=2 to trunc(sqrt(q)) do
    if q mod w=0 then snt:=false;
end;
begin
    clrscr;
    write('Nhap n:');readln(n);
    for i:=2 to n do
    if snt(i)=true then s:=s+i;
    write(s);
    readln
end.
@Tran Quang Huy Đã sửa =)
 
Top Bottom