mọi số tự nhiên đều có thể viết dưới dạng tổng của hai số nguyên tố. Viết chương trình thực hiện tách một số tự nhiên thành tổng của hai số nguyên tố

mọi số tự nhiên đều có thể viết dưới dạng tổng của hai số nguyên tố. Viết chương trình thực hiện tách một số tự nhiên thành tổng của hai số nguyên tố
Nhận xét:Hãy mở rộng bài toán theo hướng
– Xét xem trong đoạn n1…n2 số nào cho phép tách thành tổng 2 số nguyên tố nhiều trường hợp nhất
– Tách một số thành tổng ba số nguyên tố

0 bình luận về “mọi số tự nhiên đều có thể viết dưới dạng tổng của hai số nguyên tố. Viết chương trình thực hiện tách một số tự nhiên thành tổng của hai số nguyên tố”

  1. uses crt;

    var n,i,j,a,b: ineteger;

    function nt(n: integer): boolean;

    var d: byte;

    i: integer;

    begin

    d:=0;

    for i:=1 to n do

    if n mod i=0 then d:=d+1;

    if d=2 then nt:=true else nt:=false;

    end;

    begin

    clrscr;

    write (‘nhap n: ‘);   readln (N);

    for i:=1 to n-2 do

    if nt(i) then

    begin

    a:=i;

    for j:=1 to n do

    if nt(j) then 

    if a+j=n then b:=j;

    end;

    writeln (n,’ = ‘,a,’+’,b);

    readln;

    end.

    Bình luận
  2. uses crt;
    var a,b,c,n:longint;
    function nt(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;
    procedure tach(t:longint);
    begin
        b:=2;
        c:=t-b;
        while (nt(b)=false) or (nt(c)=false) do
           begin
               inc(b);dec(c);
           end;
    end;
    begin
        clrscr;
        readln(n);
        if (n mod 2=1) and (n>=4) then
           begin
               a:=2;
               b:=n-a;
               if nt(b)=true then
                  writeln(a,’+’,b)
               else writeln(‘Khong the tach thanh tong cua 2 so nguyen to’);
           end
        else
           begin
               tach(n);
               writeln(b,’+’,c);
           end;
        if n>=6 then
           if (n mod 2=0) then
             begin
               a:=2;
               tach(n-a);
               writeln(a,’+’,b,’+’,c);
             end
           else
             begin
               a:=3;
               tach(n-a);
               while (nt(a)=false) or (nt(b)=false) or (nt(c)=false) do
                  begin
                      inc(a);
                      tach(n-a);
                  end;
               writeln(a,’+’,b,’+’,c);
             end
        else writeln(‘Khong the tach thanh tong cua 3 so nguyen to’);
    readln;
    end.

    Bình luận

Viết một bình luận