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.