fork download
  1.  
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <queue>
  6. #include <map>
  7. #include <set>
  8. #include <bits/stdc++.h>
  9. using namespace std;
  10. #include <ext/pb_ds/assoc_container.hpp>
  11. using namespace __gnu_pbds;
  12. template <class T>
  13. using orderStaticTree =
  14. tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
  15.  
  16. #define ll long long
  17.  
  18. #define saleh \
  19.   ios_base::sync_with_stdio(false); \
  20.   cin.tie(nullptr);
  21.  
  22. const int md = 1e9 + 7;
  23. #define ll long long
  24.  
  25. const ll remo = -1e18;
  26.  
  27. int main()
  28. {
  29. saleh;
  30. int n;
  31. cin >> n;
  32. vector<int> v(n);
  33. for (auto &i : v)
  34. cin >> i;
  35.  
  36. vector<bool> is_prime(1000000 + 100, true);
  37. is_prime[0] = is_prime[1] = false;
  38.  
  39. for (int i = 2; i * i <= 1000000 + 100; ++i)
  40. {
  41. if (is_prime[i])
  42. {
  43. for (int j = i * i; j <= 1000000 + 100; j += i)
  44. is_prime[j] = false;
  45. }
  46. }
  47.  
  48. int ans = 0;
  49. for (auto i : v)
  50. {
  51. if (is_prime[i])
  52. continue;
  53. if (i & 1)
  54. {
  55. if (is_prime[i - 2])
  56. ++ans;
  57. else
  58. ans += 2;
  59. }
  60. else
  61. ++ans;
  62. }
  63. cout << ans << endl;
  64.  
  65. return 0;
  66. }
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
5447