Câu 3 (2,5điểm) Tổng số nguyên tố
Mọi số tự nhiên đều có thể viết được dưới dạng tổng 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ố
Ví dụ:
INPUT | OUPUT |
Nhập một số tự nhiên: 30 | 30= 17+13 |
ai kiểm tra coi bài mình sai chỗ nào vs nó chạy ko dc
Thuật toán:
const fi='Goldbach.inp'
fo='Goldbach.out'
Var i,n:longint;
f:text;
Procedure rf;
Begin
Assign(f,fi);
Reset(f);
Read(f,n);
close(f);
end;
Function KTNT(k:longint):boolean;
Begin
For i:=2 to trunc(sqrt(k)) do if k mod i=0 then exit(false);
exit(true);
end;
Procedure ef;
Begin
Assign(f,fo);
Rewrite(f);
For i:=n-1 downto 2 do if (KTNT(i))and(KTNT(n-i)) then Begin Write(f,n,'=',i,'+',n-i);Break;end;
close(f);
end;
Begin
rf;
ef;
end.