fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3.  
  4. using namespace std;
  5.  
  6. bool isPrime(int n)
  7. {
  8. if(n == 2)
  9. return true;
  10. if(n < 2 || (n > 2 && !(n&1)))
  11. return false;
  12. int i = 3;
  13. for(; i*i <= n ; i+=2)
  14. if(n%i == 0)
  15. return false;
  16. return true;
  17.  
  18. }
  19.  
  20.  
  21. void solve()
  22. {
  23. int n,m;cin>>n>>m;
  24. vector<vector<int>> v(n,vector<int>(m));
  25. for(auto& row : v)
  26. for(auto& col : row)
  27. cin>>col;
  28.  
  29. int ans = LONG_MAX;
  30. for(int j = 0 ; j < n ; j++)
  31. {
  32. int sum = 0;
  33. for(int i = 0 ; i < m ; i++)
  34. {
  35. int Tsum = 0;
  36. while(!isPrime(v[j][i]))
  37. v[j][i]++,sum++,Tsum++;
  38. v[j][i]-= Tsum;
  39. }
  40. ans = min(ans,sum);
  41. }
  42.  
  43. for(int j = 0 ; j < m ; j++)
  44. {
  45. int sum = 0;
  46. for(int i = 0 ; i < n ; i++)
  47. {
  48. int Tsum = 0;
  49. while(!isPrime(v[i][j]))
  50. v[i][j]++,sum++,Tsum++;
  51. v[i][j] -= Tsum;
  52. }
  53. ans = min(ans,sum);
  54. }
  55.  
  56. cout << ans << endl;
  57.  
  58. }
  59.  
  60. int main()
  61. {
  62. // int t;cin>>t;
  63. // while(t--)
  64. solve();
  65. return 0;
  66. }
Success #stdin #stdout 0.01s 5280KB
stdin
3 3
1 2 3
5 6 1
4 4 1
stdout
-1