Tin học Pascal

siroclc

Học sinh
Thành viên
3 Tháng mười một 2017
19
5
41
Lào Cai
THCS Đồng Tuyển
[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.

1,Viết chương trình nhập n số nguyên (n>0). Hãy loại bỏ đi các phần tử giống nhau, chỉ giữ lại một.
2, Viết chương trình nhập số n. Hãy kiểm tra xem n có phải là số siêu nguyên tô không ? Biết rằng số siêu nguyên tố là số mà mỗi khi lược bỏ đi một số của nó thì vẫn là số nguyên tố.
VD: 7331 là số siêu nguyên tố vì 7331,733,73,7 đều là các số nguyên tố.
Những bài này không quá khó đâu ạ
 

TTree

Học sinh
Thành viên
20 Tháng mười hai 2018
25
7
21
20
Sóc Trăng
PT DTNT THCS Kế Sách
C2:
uses crt;
var i,j,k:longint;
function kt(n:longint):boolean;
var i:byte;
begin
if n<=1 then exit(false);
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then exit(false);
exit(true);
end;
function sieu(var n:longint):boolean;
var bl:boolean;
begin
while kt(n) do n:=n div 10;
if n=0 then exit(true) else exit(false);
end;
begin
clrscr;
readln(k);
if sieu(k) then writeln('Yes') else writeln('No');
readln;
end.
 
  • Like
Reactions: Huỳnh Nam Huy

TTree

Học sinh
Thành viên
20 Tháng mười hai 2018
25
7
21
20
Sóc Trăng
PT DTNT THCS Kế Sách
c1
var a,b:array[1..10000] of longint;
n,i,m:longint;
begin
readln(n); m:=0;
for i:=1 to n do
begin
readln(a);
if b[a]=0 then
begin inc(b[a]); inc(m); end;
end;
for i:=1 to m do
if b[a]=1 then write(a,' ');
readln;
end.
 
  • Like
Reactions: siroclc

siroclc

Học sinh
Thành viên
3 Tháng mười một 2017
19
5
41
Lào Cai
THCS Đồng Tuyển
c1
var a,b:array[1..10000] of longint;
n,i,m:longint;
begin
readln(n); m:=0;
for i:=1 to n do
begin
readln(a);
if b[a]=0 then
begin inc(b[a]); inc(m); end;
end;
for i:=1 to m do
if b[a]=1 then write(a,' ');
readln;
end.
Mình cảm ơn bạn. Mình thấy phần kiểm tra số siêu nguyên tố ở câu 2 ngắn gọn đấy nhưng câu 1 mình nghĩ câu này không cần dùng một mảng b thêm đâu, chỉ cần cậu nhớ thuật toán xóa đi phần tử cộng thêm một số vòng lặp phù hợp là ra ngay. Dù sao cũng cảm ơn bạn
 

TTree

Học sinh
Thành viên
20 Tháng mười hai 2018
25
7
21
20
Sóc Trăng
PT DTNT THCS Kế Sách
Hì. Mình làm theo phương pháp đánh dấu để tiện nhìn hơn với đỡ tốn vòng lặp hơn ><
 
  • Like
Reactions: siroclc

siroclc

Học sinh
Thành viên
3 Tháng mười một 2017
19
5
41
Lào Cai
THCS Đồng Tuyển
Hì. Mình làm theo phương pháp đánh dấu để tiện nhìn hơn với đỡ tốn vòng lặp hơn ><
Phương pháp đánh dấu thì tùy theo từng trường hợp nhưng với code của bạn thì mình test nhiều phần tử hơn thì code lại sai bạn nhé.
 

Attachments

  • pic2.png
    pic2.png
    359.6 KB · Đọc: 81

TTree

Học sinh
Thành viên
20 Tháng mười hai 2018
25
7
21
20
Sóc Trăng
PT DTNT THCS Kế Sách
Vậy chắc mình nên dùng 2 for để xóa phần tử trùng bạn nhỉ :<
 

TTree

Học sinh
Thành viên
20 Tháng mười hai 2018
25
7
21
20
Sóc Trăng
PT DTNT THCS Kế Sách
Cậu giúp mình kiểm tra với ><
uses crt;
var a:array[1..10000] of longint;
n,i,j,k:longint;
begin
clrscr;
readln(n);
for i:=1 to n do readln(a);
for i:=1 to n-1 do
for j:=i+1 to n do
if a=a[j] then
begin
dec(n);
for k:=j to n-1 do a[k]:=a[k+1];
end;
for i:=1 to n do write(a,' ');
readln;
end.
 

siroclc

Học sinh
Thành viên
3 Tháng mười một 2017
19
5
41
Lào Cai
THCS Đồng Tuyển
Cậu giúp mình kiểm tra với ><
uses crt;
var a:array[1..10000] of longint;
n,i,j,k:longint;
begin
clrscr;
readln(n);
for i:=1 to n do readln(a);
for i:=1 to n-1 do
for j:=i+1 to n do
if a=a[j] then
begin
dec(n);
for k:=j to n-1 do a[k]:=a[k+1];
end;
for i:=1 to n do write(a,' ');
readln;
end.
Vẫn chưa đúng đâu bạn ơi.
pic3.png
 

TTree

Học sinh
Thành viên
20 Tháng mười hai 2018
25
7
21
20
Sóc Trăng
PT DTNT THCS Kế Sách
Lại là đánh dấu đây :V cậu kiểm tra giúp mình lần nữa nhé >.<
uses crt;
var a,b:array[1..10000] of longint;
i,n,j:longint;
begin
clrscr;
readln(n);
for i:=1 to n do
begin readln(a); b[a]:=1; end;
for i:=1 to n do
if b[a]=1 then
begin write(a,' ');
b[a]:=0;
end;
readln;
end.
 

siroclc

Học sinh
Thành viên
3 Tháng mười một 2017
19
5
41
Lào Cai
THCS Đồng Tuyển
b(a(i)) không hiển thị được 2 dấu ngoặc vuông. sad :(
Đây là một cách hay đó. Nhưng nó vẫn phụ thuộc vào một mảng mới. Năm ngoái mình cũng đã bị kém 0.25 điểm với bạn giải nhất chỉ vì cách này. Nhưng dù sao vẫn cho ra kết quả là hay rồi.
 

TTree

Học sinh
Thành viên
20 Tháng mười hai 2018
25
7
21
20
Sóc Trăng
PT DTNT THCS Kế Sách
Vậy là BGK chấm điểm theo kiểu rập khuôn á? :((
 
Top Bottom