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.  
  28. int main()
  29. {
  30. saleh;
  31. int n;
  32. cin >> n;
  33. if(n<3){
  34. cout<<-1<<endl;
  35. return 0;
  36. }
  37.  
  38. vector<bool> is_prime(n + 1, true);
  39. is_prime[0] = is_prime[1] = false;
  40.  
  41. for (int i = 2; i * i <= n; ++i)
  42. {
  43. if (is_prime[i])
  44. {
  45. for (int j = i * i; j <= n; j += i)
  46. is_prime[j] = false;
  47. }
  48. }
  49. set<double>st;
  50. for (int i = 2; i <= n; ++i)
  51. if (is_prime[i])
  52. st.insert(i);
  53.  
  54. auto pp = st.upper_bound(n);
  55. pp--;
  56. cout<<floor(double(*pp/3))<<" "<<floor(double(*pp/3))<<" "<<floor(double(*pp/3)) + int(*pp)%3<<endl;
  57.  
  58.  
  59. return 0;
  60. }
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
1806 1806 1807