fork download
  1. #include<bits/stdc++.h>
  2. #define f1(i, n) for(ll i=1;i<=n;++i)
  3. #define f0(i, n) for(ll i=0;i<n;++i)
  4. #define ull unsigned long long
  5. #define ll long long
  6. #define rev(a) reverse(a.begin(),a.end())
  7. #define all(x) x.begin(),x.end()
  8. #define so(A, n) sort(A+1, A+n+1)
  9. using namespace std;
  10. const int maxn = 200010;
  11. const int N = 5e6;
  12. int D[N + 1];
  13. void Sieve() {
  14. D[0] = D[1] = 1;
  15. int k = sqrt(N);
  16. for (int i = 1; i <= k; ++i) {
  17. if (D[i] == 0) {
  18. for (int j = i; j <= N / i; ++j) {
  19. D[i * j] = 1;
  20. }
  21. }
  22. }
  23. }
  24.  
  25. int main()
  26. {
  27. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  28. Sieve();
  29. string s;
  30. cin >> s;
  31. int j = 0;
  32. vector<string> v;
  33. while (j < s.size()) {
  34. if (s[j] >= '0' && s[j] <= '9') {
  35. string motcaigiday = "";
  36. while (s[j] >= '0' && s[j] <= '9' && j < s.size()) {
  37. motcaigiday += s[j];
  38. ++j;
  39. }
  40. v.push_back(motcaigiday);
  41. }
  42. ++j;
  43. }
  44. int ma = 0;
  45. for (int it = 0; it < v.size(); ++it) {
  46. for (int i = 0; i < v[it].size(); ++i) {
  47. for (int j = i; j < v[it].size(); ++j) {
  48. if (j - i + 1 > 6) break;
  49. string num = v[it].substr(i, j - i + 1);
  50. int n = stoll(num);
  51. if (n > 5e6) break;
  52. if (D[n] == 0) {
  53. ma = max(ma, n);
  54. }
  55. }
  56. }
  57. }
  58. cout << ma;
  59. return 0;
  60. }
  61.  
  62.  
Success #stdin #stdout 0.06s 23160KB
stdin
Standard input is empty
stdout
Standard output is empty