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

LV

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)

NN
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
NN
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ự
H24
Xem chi tiết
DD
Xem chi tiết
HN
Xem chi tiết
NB
Xem chi tiết
HN
Xem chi tiết
H24
Xem chi tiết
TH
Xem chi tiết
NN
Xem chi tiết
NN
Xem chi tiết