fork download
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. void generate(int N)
  7. {
  8. const int maxi = 18; // Ограничены long long
  9. if (N < 4 || N > maxi) { cout << "No solutions"; return; }
  10.  
  11. int rems[maxi]; // Массив остатков от 3, 30, 300 и т.д.
  12. unsigned long long ten = 1;
  13. for(int i = 0; i < maxi; ++i)
  14. {
  15. rems[i] = (ten*3ll)%7ll;
  16. ten *= 10ll;
  17. }
  18.  
  19. char s[maxi+1] = { 0 };
  20. for(int i = 0; i < maxi; ++i) s[i] = '4';
  21.  
  22. unsigned long long rem = atoll(s+maxi-N)%7;
  23.  
  24. for(bool a = false;;)
  25. {
  26. if (rem == 0)
  27. cout << (s+maxi-N) << endl;
  28. int j = 0;
  29. if (!(a = !a))
  30. {
  31. for(++j;s[maxi-2-j] == '4';++j);
  32. if (j == N-2) break;
  33. }
  34.  
  35. s[maxi-3-j] = (s[maxi-3-j] == '4') ? '7' : '4';
  36. int sign = (s[maxi-3-j] == '4') ? -1 : 1;
  37. rem = (rem + 7 + sign*rems[j+2])%7;
  38. }
  39. }
  40.  
  41.  
  42.  
  43. int main(int argc, const char * argv[])
  44. {
  45. generate(15);
  46. }
  47.  
  48.  
Success #stdin #stdout 0s 4548KB
stdin
Standard input is empty
stdout
444444444447444
444444444474744
444444444747744
444444447744444
444444447477744
444444477444744
444444477774444
444444474777744
444444474477444
444444774447744
444444774777444
444444777744744
444444777444444
444444747477444
444444747777744
444444744747444
444444744774744
444444744474444
444447744477744
444447744744444
444447747747444
444447747774744
444447747474444
444447777447744
444447777777444
444447774774444
444447774444744
444447474474444
444447474774744
444447474747444
444447477777744
444447477477444
444447447447444
444447447474744
444447447747744
444447444744744
444447444444444
444477444477444
444477444777744
444477447774444
444477447444744
444477477447444
444477477474744
444477477747744
444477474744744
444477474444444
444477774477744
444477774744444
444477777747444
444477777774744
444477777474444
444477747444444
444477747744744
444477744777444
444477744447744
444474744444444
444474744744744
444474747747744
444474747474744
444474747447444
444474777477444
444474777777744
444474774747444
444474774774744
444474774474444
444474474447444
444474474474744
444474474747744
444474477744444
444474477477744
444474447447744
444474447777444
444474444774444
444474444444744
444774444474444
444774444774744
444774444747444
444774447777744
444774447477444
444774477444444
444774477744744
444774474777444
444774474447744
444774774447444
444774774474744
444774774747744
444774777744444
444774777477744
444774747447744
444774747777444
444774744774444
444774744444744
444777744477444
444777744777744
444777747774444
444777747444744
444777777447444
444777777474744
444777777747744
444777774744744
444777774444444
444777474444744
444777474774444
444777477777444
444777477447744
444777447474444
444777447774744
444777447747444
444777444744444
444777444477744
444747444444744
444747444774444
444747447777444
444747447447744
444747477477744
444747477744444
444747474747744
444747474474744
444747474447444
444747774474444
444747774774744
444747774747444
444747777777744
444747777477444
444747747447444
444747747474744
444747747747744
444747744744744
444747744444444
444744744447444
444744744474744
444744744747744
444744747744444
444744747477744
444744777444744
444744777774444
444744774777744
444744774477444
444744474477744
444744474744444
444744477747444
444744477774744
444744477474444
444744447444444
444744447744744
444744444777444
444744444447744
447744444444444
447744444744744
447744447747744
447744447474744
447744447447444
447744477477444
447744477777744
447744474747444
447744474774744
447744474474444
447744774444744
447744774774444
447744777777444
447744777447744
447744747474444
447744747774744
447744747747444
447744744744444
447744744477744
447747744447444
447747744474744
447747744747744
447747747744444
447747747477744
447747777444744
447747777774444
447747774777744
447747774477444
447747474477744
447747474744444
447747477747444
447747477774744
447747477474444
447747447444444
447747447744744
447747444777444
447747444447744
447777444474444
447777444774744
447777444747444
447777447777744
447777447477444
447777477444444
447777477744744
447777474777444
447777474447744
447777774447444
447777774474744
447777774747744
447777777744444
447777777477744
447777747447744
447777747777444
447777744774444
447777744444744
447774744447744
447774744777444
447774747744744
447774747444444
447774777474444
447774777774744
447774777747444
447774774744444
447774774477744
447774474444444
447774474744744
447774477747744
447774477474744
447774477447444
447774447444744
447774447774444
447774444777744
447774444477444
447474444447744
447474444777444
447474447744744
447474447444444
447474477474444
447474477774744
447474477747444
447474474744444
447474474477744
447474774477444
447474774777744
447474777774444
447474777444744
447474747477744
447474747744444
447474744747744
447474744474744
447474744447444
447477744444444
447477744744744
447477747747744
447477747474744
447477747447444
447477777477444
447477777777744
447477774747444
447477774774744
447477774474444
447477474447444
447477474474744
447477474747744
447477477744444
447477477477744
447477447447744
447477447777444
447477444774444
447477444444744
447447444447444
447447444474744
447447444747744
447447447744444
447447447477744
447447477444744
447447477774444
447447474777744
447447474477444
447447774447744
447447774777444
447447777744744
447447777444444
447447747477444
447447747777744
447447744747444
447447744774744
447447744474444
447444744477444
447444744777744
447444747774444
447444747444744
447444777447444
447444777474744
447444777747744
447444774744744
447444774444444
447444474444744
447444474774444
447444477777444
447444477447744
447444447474444
447444447774744
447444447747444
447444444744444
447444444477744
477444444444744
477444444774444
477444447777444
477444447447744
477444477477744
477444477744444
477444474747744
477444474474744
477444474447444
477444774474444
477444774774744
477444774747444
477444777777744
477444777477444
477444747447444
477444747474744
477444747747744
477444744744744
477444744444444
477447744447744
477447744777444
477447747744744
477447747444444
477447777474444
477447777774744
477447777747444
477447774744444
477447774477744
477447474444444
477447474744744
477447477747744
477447477474744
477447477447444
477447447444744
477447447774444
477447444777744
477447444477444
477477444447444
477477444474744
477477444747744
477477447744444
477477447477744
477477477444744
477477477774444
477477474777744
477477474477444
477477774447744
477477774777444
477477777744744
477477777444444
477477747477444
477477747777744
477477744747444
477477744774744
477477744474444
477474744477444
477474744777744
477474747774444
477474747444744
477474777447444
477474777474744
477474777747744
477474774744744
477474774444444
477474474444744
477474474774444
477474477777444
477474477447744
477474447474444
477474447774744
477474447747444
477474444744444
477474444477744
477774444444444
477774444744744
477774447747744
477774447474744
477774447447444
477774477477444
477774477777744
477774474747444
477774474774744
477774474474444
477774774444744
477774774774444
477774777777444
477774777447744
477774747474444
477774747774744
477774747747444
477774744744444
477774744477744
477777744447444
477777744474744
477777744747744
477777747744444
477777747477744
477777777444744
477777777774444
477777774777744
477777774477444
477777474477744
477777474744444
477777477747444
477777477774744
477777477474444
477777447444444
477777447744744
477777444777444
477777444447744
477747444477744
477747444744444
477747447747444
477747447774744
477747447474444
477747477447744
477747477777444
477747474774444
477747474444744
477747774444444
477747774744744
477747777747744
477747777474744
477747777447444
477747747444744
477747747774444
477747744777744
477747744477444
477744744444744
477744744774444
477744747777444
477744747447744
477744777477744
477744777744444
477744774747744
477744774474744
477744774447444
477744474447744
477744474777444
477744477744744
477744477444444
477744447477444
477744447777744
477744444747444
477744444774744
477744444474444
474744444477744
474744444744444
474744447747444
474744447774744
474744447474444
474744477447744
474744477777444
474744474774444
474744474444744
474744774444444
474744774744744
474744777747744
474744777474744
474744777447444
474744747444744
474744747774444
474744744777744
474744744477444
474747744474444
474747744774744
474747744747444
474747747777744
474747747477444
474747777444444
474747777744744
474747774777444
474747774447744
474747474477444
474747474777744
474747477774444
474747477444744
474747447477744
474747447744444
474747444747744
474747444474744
474747444447444
474777444444744
474777444774444
474777447777444
474777447447744
474777477477744
474777477744444
474777474747744
474777474474744
474777474447444
474777774474444
474777774774744
474777774747444
474777777777744
474777777477444
474777747447444
474777747474744
474777747747744
474777744744744
474777744444444
474774744447444
474774744474744
474774744747744
474774747744444
474774747477744
474774777444744
474774777774444
474774774777744
474774774477444
474774474477744
474774474744444
474774477747444
474774477774744
474774477474444
474774447444444
474774447744744
474774444777444
474774444447744
474474444447444
474474444474744
474474444747744
474474447744444
474474447477744
474474477444744
474474477774444
474474474777744
474474474477444
474474774447744
474474774777444
474474777744744
474474777444444
474474747477444
474474747777744
474474744747444
474474744774744
474474744474444
474477744477744
474477744744444
474477747747444
474477747774744
474477747474444
474477777447744
474477777777444
474477774774444
474477774444744
474477474474444
474477474774744
474477474747444
474477477777744
474477477477444
474477447447444
474477447474744
474477447747744
474477444744744
474477444444444
474447444474444
474447444774744
474447444747444
474447447777744
474447447477444
474447477444444
474447477744744
474447474777444
474447474447744
474447774447444
474447774474744
474447774747744
474447777744444
474447777477744
474447747447744
474447747777444
474447744774444
474447744444744
474444744447744
474444744777444
474444747744744
474444747444444
474444777474444
474444777774744
474444777747444
474444774744444
474444774477744
474444474444444
474444474744744
474444477747744
474444477474744
474444477447444
474444447444744
474444447774444
474444444777744
474444444477444
774444444447744
774444444777444
774444447744744
774444447444444
774444477474444
774444477774744
774444477747444
774444474744444
774444474477744
774444774477444
774444774777744
774444777774444
774444777444744
774444747477744
774444747744444
774444744747744
774444744474744
774444744447444
774447744444444
774447744744744
774447747747744
774447747474744
774447747447444
774447777477444
774447777777744
774447774747444
774447774774744
774447774474444
774447474447444
774447474474744
774447474747744
774447477744444
774447477477744
774447447447744
774447447777444
774447444774444
774447444444744
774477444477744
774477444744444
774477447747444
774477447774744
774477447474444
774477477447744
774477477777444
774477474774444
774477474444744
774477774444444
774477774744744
774477777747744
774477777474744
774477777447444
774477747444744
774477747774444
774477744777744
774477744477444
774474744444744
774474744774444
774474747777444
774474747447744
774474777477744
774474777744444
774474774747744
774474774474744
774474774447444
774474474447744
774474474777444
774474477744744
774474477444444
774474447477444
774474447777744
774474444747444
774474444774744
774474444474444
774774444447444
774774444474744
774774444747744
774774447744444
774774447477744
774774477444744
774774477774444
774774474777744
774774474477444
774774774447744
774774774777444
774774777744744
774774777444444
774774747477444
774774747777744
774774744747444
774774744774744
774774744474444
774777744477744
774777744744444
774777747747444
774777747774744
774777747474444
774777777447744
774777777777444
774777774774444
774777774444744
774777474474444
774777474774744
774777474747444
774777477777744
774777477477444
774777447447444
774777447474744
774777447747744
774777444744744
774777444444444
774747444474444
774747444774744
774747444747444
774747447777744
774747447477444
774747477444444
774747477744744
774747474777444
774747474447744
774747774447444
774747774474744
774747774747744
774747777744444
774747777477744
774747747447744
774747747777444
774747744774444
774747744444744
774744744447744
774744744777444
774744747744744
774744747444444
774744777474444
774744777774744
774744777747444
774744774744444
774744774477744
774744474444444
774744474744744
774744477747744
774744477474744
774744477447444
774744447444744
774744447774444
774744444777744
774744444477444
777744444444744
777744444774444
777744447777444
777744447447744
777744477477744
777744477744444
777744474747744
777744474474744
777744474447444
777744774474444
777744774774744
777744774747444
777744777777744
777744777477444
777744747447444
777744747474744
777744747747744
777744744744744
777744744444444
777747744447744
777747744777444
777747747744744
777747747444444
777747777474444
777747777774744
777747777747444
777747774744444
777747774477744
777747474444444
777747474744744
777747477747744
777747477474744
777747477447444
777747447444744
777747447774444
777747444777744
777747444477444
777777444447444
777777444474744
777777444747744
777777447744444
777777447477744
777777477444744
777777477774444
777777474777744
777777474477444
777777774447744
777777774777444
777777777744744
777777777444444
777777747477444
777777747777744
777777744747444
777777744774744
777777744474444
777774744477444
777774744777744
777774747774444
777774747444744
777774777447444
777774777474744
777774777747744
777774774744744
777774774444444
777774474444744
777774474774444
777774477777444
777774477447744
777774447474444
777774447774744
777774447747444
777774444744444
777774444477744
777474444477444
777474444777744
777474447774444
777474447444744
777474477447444
777474477474744
777474477747744
777474474744744
777474474444444
777474774477744
777474774744444
777474777747444
777474777774744
777474777474444
777474747444444
777474747744744
777474744777444
777474744447744
777477744444744
777477744774444
777477747777444
777477747447744
777477777477744
777477777744444
777477774747744
777477774474744
777477774447444
777477474447744
777477474777444
777477477744744
777477477444444
777477447477444
777477447777744
777477444747444
777477444774744
777477444474444
777447444447744
777447444777444
777447447744744
777447447444444
777447477474444
777447477774744
777447477747444
777447474744444
777447474477744
777447774477444
777447774777744
777447777774444
777447777444744
777447747477744
777447747744444
777447744747744
777447744474744
777447744447444
777444744477744
777444744744444
777444747747444
777444747774744
777444747474444
777444777447744
777444777777444
777444774774444
777444774444744
777444474474444
777444474774744
777444474747444
777444477777744
777444477477444
777444447447444
777444447474744
777444447747744
777444444744744
777444444444444
747444444477444
747444444777744
747444447774444
747444447444744
747444477447444
747444477474744
747444477747744
747444474744744
747444474444444
747444774477744
747444774744444
747444777747444
747444777774744
747444777474444
747444747444444
747444747744744
747444744777444
747444744447744
747447744444744
747447744774444
747447747777444
747447747447744
747447777477744
747447777744444
747447774747744
747447774474744
747447774447444
747447474447744
747447474777444
747447477744744
747447477444444
747447447477444
747447447777744
747447444747444
747447444774744
747447444474444
747477444444444
747477444744744
747477447747744
747477447474744
747477447447444
747477477477444
747477477777744
747477474747444
747477474774744
747477474474444
747477774444744
747477774774444
747477777777444
747477777447744
747477747474444
747477747774744
747477747747444
747477744744444
747477744477744
747474744474444
747474744774744
747474744747444
747474747777744
747474747477444
747474777444444
747474777744744
747474774777444
747474774447744
747474474477444
747474474777744
747474477774444
747474477444744
747474447477744
747474447744444
747474444747744
747474444474744
747474444447444
747774444447744
747774444777444
747774447744744
747774447444444
747774477474444
747774477774744
747774477747444
747774474744444
747774474477744
747774774477444
747774774777744
747774777774444
747774777444744
747774747477744
747774747744444
747774744747744
747774744474744
747774744447444
747777744444444
747777744744744
747777747747744
747777747474744
747777747447444
747777777477444
747777777777744
747777774747444
747777774774744
747777774474444
747777474447444
747777474474744
747777474747744
747777477744444
747777477477744
747777447447744
747777447777444
747777444774444
747777444444744
747747444447444
747747444474744
747747444747744
747747447744444
747747447477744
747747477444744
747747477774444
747747474777744
747747474477444
747747774447744
747747774777444
747747777744744
747747777444444
747747747477444
747747747777744
747747744747444
747747744774744
747747744474444
747744744477444
747744744777744
747744747774444
747744747444744
747744777447444
747744777474744
747744777747744
747744774744744
747744774444444
747744474444744
747744474774444
747744477777444
747744477447744
747744447474444
747744447774744
747744447747444
747744444744444
747744444477744
744744444447444
744744444474744
744744444747744
744744447744444
744744447477744
744744477444744
744744477774444
744744474777744
744744474477444
744744774447744
744744774777444
744744777744744
744744777444444
744744747477444
744744747777744
744744744747444
744744744774744
744744744474444
744747744477744
744747744744444
744747747747444
744747747774744
744747747474444
744747777447744
744747777777444
744747774774444
744747774444744
744747474474444
744747474774744
744747474747444
744747477777744
744747477477444
744747447447444
744747447474744
744747447747744
744747444744744
744747444444444
744777444477444
744777444777744
744777447774444
744777447444744
744777477447444
744777477474744
744777477747744
744777474744744
744777474444444
744777774477744
744777774744444
744777777747444
744777777774744
744777777474444
744777747444444
744777747744744
744777744777444
744777744447744
744774744444444
744774744744744
744774747747744
744774747474744
744774747447444
744774777477444
744774777777744
744774774747444
744774774774744
744774774474444
744774474447444
744774474474744
744774474747744
744774477744444
744774477477744
744774447447744
744774447777444
744774444774444
744774444444744
744474444444444
744474444744744
744474447747744
744474447474744
744474447447444
744474477477444
744474477777744
744474474747444
744474474774744
744474474474444
744474774444744
744474774774444
744474777777444
744474777447744
744474747474444
744474747774744
744474747747444
744474744744444
744474744477744
744477744447444
744477744474744
744477744747744
744477747744444
744477747477744
744477777444744
744477777774444
744477774777744
744477774477444
744477474477744
744477474744444
744477477747444
744477477774744
744477477474444
744477447444444
744477447744744
744477444777444
744477444447744
744447444477744
744447444744444
744447447747444
744447447774744
744447447474444
744447477447744
744447477777444
744447474774444
744447474444744
744447774444444
744447774744744
744447777747744
744447777474744
744447777447444
744447747444744
744447747774444
744447744777744
744447744477444
744444744444744
744444744774444
744444747777444
744444747447744
744444777477744
744444777744444
744444774747744
744444774474744
744444774447444
744444474447744
744444474777444
744444477744744
744444477444444
744444447477444
744444447777744
744444444747444
744444444774744
744444444474444