const maxx=1000000;
var p:array[0..1000000] of longint;
a:array[1..1500,1..1500] of longint;
d,k,i,x,y,n,m:longint;
s:int64;
procedure sang;
var i,j:longint;
begin
for i:=1 to maxx do p[i]:=0;
p[1]:=1;
p[0]:=1;
for i:=2 to trunc(sqrt(maxx)) do
begin
if p[i]=0 then
begin
j:=i*i;
while j<=maxx do
begin
p[j]:=1;
j:=j+i;
end;
end;
end;
end;
procedure nhap;
var i,j:longint;
begin
readln(n,m);
for i:=1 to n do
begin
for j:=1 to m do
read(a[i,j]);
readln();
end;
end;
procedure xet(x,y:longint);
var i:longint;
begin
if a[x,y]=0 then exit;
if p[a[x,y]]=0 then
begin
//writeln(a[x,y]);
inc(d);
s:=s+a[x,y];
end;
k:=a[x,y];
for i:=1 to 5 do
begin
if y+i>m then break;
k:=k*10+a[x,y+i];
if p[k]=0 then
begin
//writeln(k);
inc(d);
s:=s+k;
end;
end;
k:=a[x,y];
for i:=1 to 5 do
begin
if (y+i>m) or (x+i>n) then break;
k:=k*10+a[x+i,y+i];
if p[k]=0 then
begin
//writeln(k);
inc(d);
s:=s+k;
end;
end;
k:=a[x,y];
for i:=1 to 5 do
begin
if x+i>n then break;
k:=k*10+a[x+i,y];
if p[k]=0 then
begin
//writeln(k);
inc(d);
s:=s+k;
end;
end;
end;
procedure giai;
var i,j:longint;
begin
sang;
for i:=1 to n do
begin
for j:=1 to m do
xet(i,j);
end;
write(d,' ',s);
end;
begin
assign(input,'prime.inp');reset(input);
assign(output,'prime.out');rewrite(output);
nhap;
giai;
close(input);
close(output);
end.
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Ba, 3 tháng 5, 2022
PRIME Pascal
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.