Uses crt; Var n,f:int64; i:longint; t:array[1..10000000] of boolean; procedure dq(a,b:longint); Begin If (t[a]=true)and(t[b]=true) then Write(a,' ',b) else dq(a-1,b+1); end; Begin fillchar(t,sizeof(t),true); readln(n); For i:=2 to n do Begin If t[i]=true then Begin f:=i; While f<n do Begin f:=f+i; t[f]:=false; end; end; end; For i:=n-4 downto 2 do If ((n-i) mod 2=0)and(t[i]=true) then break; Write(i,' '); dq(n-i-2,2); readln; end.
Dùng nick gmail để bình luận. Nếu lần đầu tiên bạn làm điều này thì hệ thống sẽ chuyển bạn sang trang blogger và hỏi bạn chọn tên hiển thị là gì. Bạn hãy nhập tên hiển thị rồi ok là được. Những lần bình luận sau hệ thống sẽ không hỏi nữa. Cảm ơn!
Uses crt;
Trả lờiXóaVar n,f:int64;
i:longint;
t:array[1..10000000] of boolean;
procedure dq(a,b:longint);
Begin
If (t[a]=true)and(t[b]=true) then Write(a,' ',b) else
dq(a-1,b+1);
end;
Begin
fillchar(t,sizeof(t),true);
readln(n);
For i:=2 to n do
Begin
If t[i]=true then
Begin
f:=i;
While f<n do
Begin
f:=f+i;
t[f]:=false;
end;
end;
end;
For i:=n-4 downto 2 do
If ((n-i) mod 2=0)and(t[i]=true) then break;
Write(i,' ');
dq(n-i-2,2);
readln;
end.