Lập trình đơn giản

Lục Hạ Vy

Với N là một số nguyên dương cho trước (N<1000).Hãy tìm tất cả các bộ số nguyên tố x, y, z(x ≤ y ≤ z)là nghiệm của phương trình sau x + y + z = N.

+ Dữ liệu vào: từ file NGHIEMNT.INP gồm một số N duy nhất.

+ Dữ liệu ra: ghi ra file NGHIEMNT.OUT chứa K+1 dòng (K là số nghiệm tìm được), trong đó: - Dòng thứ i trong K dòng đầu tiên chứa 3 số nguyên tố cho biết bộ nghiệm thứ i. - Dòng thứ K+1 chứ 3 số 0 cho biết điểm kết thúc của file kết qủa (Các số trên cùng một dòng cách nhau một khoảng trống)

Nguyễn Chơn Nhân
24 tháng 11 2019 lúc 21:53

var n,x,y,z:integer;

begin

assign(input,'nghiemnt.inp');reset(input);

assign(output,'nghiemnt.out');rewrite(output);

readln(n);

for x:=0 to n do

for y:=0 to n-x do

begin

z:=n-x-y;

writeln(x,' ',y,' ',z);

end;

writeln('0 0 0');

end.

Bình luận (0)
 Khách vãng lai đã xóa
Nguyễn Chơn Nhân
27 tháng 11 2019 lúc 5:51

var n,i,j,h:longint;kt:boolean;

function nt(n:int64):boolean;

var k:longint;

begin

if n<2 then exit(false) else if n<4 then exit(true);

if (n mod 2=0) or (n mod 3=0) then exit(false);

for k:=1 to (trunc(sqrt(n))+1) div 6 do

if (n mod (6*k+1)=0) or (n mod (6*k-1)=0) then exit(false);

exit(true);

end;

begin

assign(input,'nghiemnt.inp');reset(input);

assign(output,'nghiemnt.out');rewrite(output);

readln(n);kt:=false;

for i:=2 to n do

begin

if nt(i) then

for j:=n-i downto 2 do

begin

h:=n-i-j;

if nt(j)and nt(h) then begin writeln(i,' ',j,' ',h);kt:=true; end;

end;
end;
if kt=false then write('khong co bo so nao');

end.

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

Các câu hỏi tương tự
Mon_LAK
Xem chi tiết
Đào Tiến Đạt
Xem chi tiết
Hakita Nguyen
Xem chi tiết
Nguyễn Phương Bằng
Xem chi tiết
Hakita Nguyen
Xem chi tiết
No_sun
Xem chi tiết
Thiên Hà
Xem chi tiết
Nguyễn Chơn Nhân
Xem chi tiết
Nguyễn Chơn Nhân
Xem chi tiết