Bài 2: Các thành phần của ngôn ngữ lập trình

00

1/ Theo giả thuyết Golbach. Mọi số tự nhiên chẵn lớn hơn 2 là tổng của 2 số nguyên tố. Cho số tự nhiên N ( với N< 2147483648), hãy kiểm tra giả thuyết Golbach bằng cách liệt kê tất cả các cách phân tích N thành tổng 2 số nguyên tố

ML
25 tháng 2 2020 lúc 13:53

Program hotrotinhoc;

var i1,i,n: longint;

function nt(x: longint): boolean;

var j: longint;

begin

nt:=true;

if (x=2) or (x=3) then exit;

nt:=false;

if (x=1) or (x mod 2=0) or (x mod 3=0) then exit;

j:=5;

while j<=trunc(sqrt(x)) do

begin

if (x mod j=0) or (x mod (j+2)=0) then exit;

j:=j+6;

end;

nt:=true;

end;

begin

readln(n);

if (n mod 2<>0) or (n<=2) then write('Khong the phan tich') else

begin

for i:=1 to n do

for i1:=i to n do

if (i+i1=n) and nt(i) and nt(i1) then writeln('N=',i,'+',i1);

end;

readln

end.

Bình luận (0)
 Khách vãng lai đã xóa
NT
26 tháng 2 2020 lúc 9:11

uses crt;
var n,i,j,a,b,kt1,kt2,kt,k:longint;
begin
clrscr;
write('nhap n='); readln(n);
if n mod 2=1 then begin
a:=2;
b:=n-a;
kt:=0;
for k:=2 to trunc(sqrt(b)) do
if b mod k=0 then kt:=1;
if kt=0 then writeln(n,'=',a,'+',b)
else write(n,' khong the phan tich thanh tong nguyen to');
end;
if n mod 2=0 then begin
for i:=2 to n div 2 do
begin
a:=i;
b:=n-i;
kt1:=0;
kt2:=0;
for j:=2 to trunc(sqrt(a)) do
if a mod j=0 then kt1:=1;
for j:=2 to trunc(sqrt(b)) do
if b mod j=0 then kt2:=1;
if (kt1=0) and (kt2=0) then writeln(n,'=',a,'+',b);
end;
end;
readln;
end.

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
QN
Xem chi tiết
KT
Xem chi tiết
IS
Xem chi tiết
00
Xem chi tiết
00
Xem chi tiết
AN
Xem chi tiết
00
Xem chi tiết
SA
Xem chi tiết
TU
Xem chi tiết