Mạng máy tính và internet

helpme

Cho dãy số A gồm các số nguyên tố 2, 3, 5, 7, .... Ghép hai số nguyên tố cạnh nhau được một dãy số mới 23, 35, 57, ... Trong dãy số mới này có những số là số nguyên tố 23, 57, ... được gọi là dãy các số nguyên tố ghép B. nhập vào 1 số tự nhiên k in ra man hinh so nguyen tố ghép thứ k trong dãy nguyên tố ghép b

nhập 2 ra 57 Số nguyên tố ghép thứ 2 trong dãy số nguyên tố ghép B là 57

làm theo tập tin pascal

Nguyễn Lê Phước Thịnh
11 tháng 5 2020 lúc 14:39

uses crt;
const f='ngtoghep.inp';

var d,n,k,kt1,i,j,x,kt2,u,kt:longint;
st1,st2,st:string;
y:integer;

f1:text;
begin
clrscr;

assign(f1,f); reset(f1);

readln(f1,k);
if k>1 then begin
d:=1;
n:=3;
repeat
repeat
kt:=0;
n:=n+2;
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then kt:=1;
if kt=0 then str(n,st1);
until kt=0;
{----------------------------------------}
repeat
kt:=0;
n:=n+2;
for j:=2 to trunc(sqrt(n)) do
if n mod j=0 then kt:=1;
if kt=0 then str(n,st2);
until kt=0;
{----------------------------------------}
kt:=0;
st:=st1+st2;
val(st,x,y);
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then kt:=1;
if kt=0 then d:=d+1;
until d=k;
end;
if k=1 then write('so nguyen to ghep thu ',k,' la 23')
else writeln('so nguyen to ghep thu ',k,' la: ',x);

close(f1);
readln;
end.

Bình luận (0)
Minh Lệ
12 tháng 5 2020 lúc 16:23

Trên đề bạn cho test sai rồi. 57 đâu phải là số nguyên tố đâu bạn. Dễ nhìn thấy 5+7=12 chia hết cho 3.Nên trong dãy mới thì không có số 57. Lần sau bạn chú ý cho test đúng bạn nhé.

Program HOC24;

var s,sc,st: string;

a,b: array[1..10000] of string;

c: array[1..10000] of integer;

i,n,k,d2,t,d,d1:longint;

p: integer;

function nt(x: longint): boolean;

var j: longint;

begin

nt:=true;

if (x=2) or (x=3) then exit;

nt:=false;

if (x=1) or (x mod 2=0) or (x mod 3=0) then exit;

j:=5;

while (j<=trunc(sqrt(x))) do

begin

if (x mod j=0) or (x mod (j+2)=0) then exit;

j:=j+6;

end;

nt:=true;

end;

begin

write('Nhap k='); readln(k);

for i:=1 to 30000 do

if nt(i) then

begin

str(i,sc);

inc(d);

a[d]:=sc;

end;

for i:=1 to d do

begin

inc(d1);

b[d1]:=a[i]+a[i+1];

end;

for i:=1 to d1 do

begin

val(b[i],p);

if nt(p) then begin inc(d2); st:=b[i]; end;

if k=d2 then break;

end;

write(st);

readln

end.

Bình luận (0)

Các câu hỏi tương tự
hoàng đá thủ
Xem chi tiết
helpme
Xem chi tiết
hoàng đá thủ
Xem chi tiết
Nhật Nguyễn
Xem chi tiết
Doãn Hoài Trang
Xem chi tiết
helpme
Xem chi tiết
Đoàn Thị Linh Chi
Xem chi tiết
Đoàn Thị Linh Chi
Xem chi tiết
Doãn Hoài Trang
Xem chi tiết