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.