Cho một dãy số nguyên dương gồm N phần tử a1, a2, …, aN với (1≤ N ≤ 30). Hãy viết chương trình thực hiện công việc sau: Đếm trong dãy số trên có bao nhiêu cặp số sinh đôi. Biết rằng, hai số được gọi là cặp số sinh đôi nếu nó là các số nguyên tố và có hiệu bằng 2, ví dụ hai số 7 và 5 là một cặp số sinh đôi.
Dữ
liệu vào:
Nhập vào số nguyên dương N và các giá trị ai của dãy số (1 ≤ i ≤ N);
Kết
quả ra: Ghi
ra màn hình gồm hai dòng:
-
Dòng đầu: là một số nguyên dương cho biết số cặp số sinh đôi tìm được;
-
Dòng thứ hai: là các cặp số sinh đôi tìm được;
-
Nếu không tìm được thì ghi là “khong co cap nao”.
Các
số trên một dòng viết cách nhau ít nhất một dấu cách.
Ví dụ:
Dữ
liệu vào |
Dữ
liệu ra |
10 10 5 6 8 20 11 13 7 89 30 |
2 (7,5) (13,11) |
4 25 43 6 7 9 |
khong co cap nao |
CODE THAM KHẢO:
program CapSoSinhDoi;
uses crt;
var i, n, d: integer;
A: array[1..100] of integer;
NT: array[-110..100000] of byte;
function snt(M: integer): boolean;
var j: integer;
begin
snt:=True;
if m < 2 then exit(false) else
for j:=2 to trunc(sqrt(m)) do
if m mod j = 0 then exit(false);
end;
begin
clrscr;
fillchar(NT,sizeof(NT),0);
write('Nhap N = '); readln(n);
d:=0;
for i:=1 to n do
begin
write('A[',i,'] = '); readln(A[i]);
if snt(a[i]) then
begin
NT[a[i]]:=1;
if NT[a[i]-2]=1 then inc(d);
end;
end;
if d > 0 then
begin
writeln(d);
for i:=1 to n do
if (NT[a[i]-2] = 1) and (NT[a[i]] = 1) then
write('(',a[i],' ',a[i]-2,')');
end else write('khong co cap nao');
readln;
end.
Đăng nhận xét