#include<bits/stdc++.h> using namespace std; const int maxx=1000005; long long res = 0, t = 0; int n, m; int a[1600][1600]; bool p[maxx]; void sang() { int j; for(int i = 1; i <= maxx; i++) p[i] = true; p[0] = false; p[1] = false; for(int i = 2; i <= int(sqrt(maxx)); i++) { if (p[i]==true) { j=i*i; while(j<=maxx) { p[j]=false; j=j+i; } } } } void check(int x, int y) { if (a[x][y]==0) return; int k = a[x][y]; if (p[k]) res+=k, t++; for(int i = 1; i<=5; i++) { if (i + y > m) break; k = k*10+a[x][y+i]; if (p[k]) res +=k, t++; } k = a[x][y]; for(int i = 1; i<=5; i++) { if ((i + x > n)||(i+y > m)) break; k = k*10+a[x+i][y+i]; if (p[k]) res +=k, t++; } k = a[x][y]; for(int i = 1; i<=5; i++) { if (i + x > n) break; k = k*10+a[x+i][y]; if (p[k]) res +=k, t++; } } void giai() { sang(); for(int i = 1; i<=n; i++) for(int j = 1; j<=m; j++) check(i,j); printf("%lld %lld",t,res); } int main() { freopen("PRIME.inp","r",stdin); freopen("PRIME.out","w",stdout); scanf("%d %d", &n, &m); for(int i = 1; i<=n; i++) { for(int j = 1; j<=m; j++) scanf("%d",&a[i][j]); } giai(); return 0; }
* 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 C++
Đă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.