Pascal

Modified: Wednesday, 22-12-2021 07:00 AM

Tìm 2 số nguyên tố gần nhau nhất có tổng bằng N

Ví dụ: 

22 18 72
11 ; 11 7 ; 11 31 ; 41

 


var n,k,i,j:longint;
b:boolean;
// Ham kiem tra tinh nguyen to cua 1 so
function snt(x:longint):boolean;
var i:longint;
begin
    if x<2 then exit(false);
        for i:=2 to trunc(sqrt(x)) do 
        if x mod i=0 then exit(false);
        exit(true);
end;
// Chuong trinh chinh
begin
    b:=false;
    readln(n);
    k:=n div 2;
    begin
        i := k;
        while b=false do
        begin
            j := k;
            while snt(i)=false do dec(i);
            while (snt(j)=false) or (i+j < n) do inc(j);
            if i+j=n then 
            begin
                b := true;
                write(' {',i,' ',j,'}');
            end    
            else dec(i);
        end;
    end;
    readln;
end.