Advertisement
O_Egor

79

May 18th, 2022
566
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4. #include <map>
  5. using namespace std;
  6.    
  7. map <int, vector<int>> mp;
  8.  
  9. bool isPalindrom(int a, int &p)
  10. {
  11.     int x(0), y(a);
  12.     p = 1;
  13.     while (a)
  14.     {
  15.         x *= 10;
  16.         x += a % 10;
  17.         if(a%10)
  18.             p *= a % 10;
  19.         a /= 10;
  20.     }
  21.     return y == x;
  22. }
  23.  
  24. void prostPolindrom(int a)
  25. {
  26.     bool f(1);
  27.     for (int i = 2; i < sqrt(a); ++i)
  28.     {
  29.         if (a % i == 0)
  30.         {
  31.             f = 0;
  32.             break;
  33.         }
  34.     }
  35.     if (f)
  36.     {
  37.         int p(1), b = a;
  38.         if (isPalindrom(a, p))
  39.         {
  40.             mp[p].push_back(a);
  41.         }
  42.     }
  43. }
  44.  
  45. int main()
  46. {
  47.     for (int i = 100; i < 1000000001; ++i)
  48.     {
  49.         prostPolindrom(i);
  50.     }
  51.     int key(-1000), mx(-10000);
  52.     for (auto& i : mp)
  53.     {
  54.         cout << i.first << ' ';
  55.         int sz = i.second.size();
  56.         if (sz > mx)
  57.         {
  58.             mx = i.second.size();
  59.             key = i.first;
  60.         }
  61.     }
  62.  
  63.  
  64.     for (int i = 0; i < 5; ++i)
  65.     {
  66.         cout << mp[key][mp[key].size() - 1 - i] << ' ';
  67.     }
  68.     return 0;
  69. }
Advertisement
RAW Paste Data Copied
Advertisement