Trong một bức thư mà Christian Goldbach gửi cho Euler, ông đã đề cập đến phỏng đoán của mình" Mọi số tự nhiên chẵn lớn hơn 2 đều là tổng của 2 số Nguyên Tố" . em hãy lập chương trình kiểm tra phỏng đoán của goldbach Dữ liệu vào : - Dòng đầu là số nguyên dương N (N<=10^2) - N dòng tiếp theo mỗi dòng ghi 1 số tự nhiên chẵn ai( i= 1,2,...N) 2<ai<10^9 vd EULER.INP EULER.OUT 3 8 3 5 12 5 7 14 3 11 KO CẦN DÙNG FILE, GIẢI THÍCH THUẬT GIẢI
1 câu trả lời
//Kiểm tra tính nguyên tố :)
uses crt;
var n:integer;
x,i:longint;
prime:array[1..1000] of boolean;
procedure sieve(n:longint);
var i,j:longint;
begin
fillchar(prime, sizeof(prime), true);
i:=2;
for i:=2 to trunc(sqrt(n)) do
if prime[i] then
begin
j:=i * i;
while j <= n do
begin
prime[j]:=false;
inc(j,i);
end;
end;
end;
procedure solve();
var i:longint;
begin
readln(x);
sieve(x);
for i:=2 to x - 2 do
if(prime[i]) and (prime[x - i]) then
begin
writeln(i,' ',x - i);
break;
end;
end;
begin
clrscr;
readln(n);
for i:=1 to n do
solve();
readln;
end.