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

TH

Cho số nguyên dương N (N ≤ 105).

Yêu cầu: Tìm số các cặp số nguyên dương x, y sao cho:

x, y là 2 số nguyên tố. x + y = N xy

Dữ liệu vào: Vào từ file văn bản NT.INP gồm một số duy nhất N.

Kết quả: Đưa ra file văn bản NT.OUT một số là số các cặp số tìm được.

Ví dụ:

NT.INP

NT.OUT

10

2

ML
31 tháng 1 2020 lúc 16:41

program hotrotinhoc;

const fi='NT.INP';

fo='NT.OUT';

var x,y,d,n: integer;

f: text;

function nt(a: byte): boolean;

var j: byte;

begin

nt:=true;

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

nt:=false;

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

j:=6;

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

begin

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

j:=j+5;

end;

nt:=true;

end;

procedure ip;

begin

assign(f,fi);

reset(f);

read(f,n);

close(f);

end;

procedure out;

begin

assign(f,fo);

rewrite(f);

d:=0;

for x:=1 to n do

for y:=x to n do

if (x+y=n) and nt(x) and nt(y) then inc(d) ;

write(f,d);

close(f);

end;

begin

ip;

out;

end.

Bình luận (0)
 Khách vãng lai đã xóa
GH
4 tháng 2 2020 lúc 10:42

var n,x,dem:byte;

f:text;

function kt(so:byte):boolean;

var k:byte;

begin

if (so=2) or (so=3) then exit(true);

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

k:=5;

repeat

if (so mod k =0) or (so mod (k+2)=0) then break;

inc(k,6);

until k>trunc(sqrt(so));

exit(k>trunc(sqrt(so)));

end;

begin

assign(f,'NT.inp');reset(f);

readln(f,n);

close(f);

assign(f,'NT.out');rewrite(f);

dem:=0;

for x:=1 to n div 2 do

if (kt(x)) and (kt(n-x)) then inc(dem);

writeln(f,dem);

close(f);

readln

end.

chúc bạn học tốt!

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
LV
Xem chi tiết
HH
Xem chi tiết
NB
Xem chi tiết
NT
Xem chi tiết
HN
Xem chi tiết
PD
Xem chi tiết
HN
Xem chi tiết
PT
Xem chi tiết