Advertisement
ElfikCo

Szukanie podstawy potęgi w potędze

Feb 3rd, 2017
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cmath>
  4. #include <vector>
  5. #include <algorithm>
  6. #include <conio.h>
  7.  
  8. int main()
  9. {
  10.     using namespace std;
  11.     cout << "GIVE ME A NUMBER: ";
  12.     int how_many_times;                                                     // Ile liczb ma być sprawdzonych
  13.     cin >> how_many_times;
  14.     cout << endl;
  15.     vector<string>stab;
  16.     unsigned long long *numbers = new unsigned long long[how_many_times];
  17.     for (int i = 0; i < how_many_times; i++)                                //zapisywanie liczb do tablicy
  18.     {
  19.         numbers[i] = i + 1;
  20.         unsigned long long q = 1;
  21.         stab.push_back(to_string(numbers[i] * numbers[i]));
  22.     }
  23.     cout << endl;
  24.     for (int j = 0; j < how_many_times; j++)
  25.     {
  26.         string buff_pow, buff_root;
  27.         buff_pow = to_string(numbers[j] * numbers[j]);                      //Zamiana na stringi w celu sprawdzenia
  28.         buff_root = to_string(numbers[j]);
  29.         int li = buff_pow.length() - buff_root.length();
  30.         int x = 0;
  31.         while (true)
  32.         {
  33.             string buff_substr;
  34.             if (buff_root.length() + x > stab[j].length())                  //Przeszukiwanie liczby za pomocą bufora
  35.             {
  36.                 break;
  37.             }
  38.             if (buff_pow.length() == 1)
  39.             {
  40.                 buff_substr = buff_pow.substr(x, x + buff_root.length());
  41.             }
  42.             else
  43.                 buff_substr = buff_pow.substr(x, x + buff_root.length()-1);
  44.             if (buff_substr == buff_root)
  45.             {
  46.                 cout << buff_root << " is a part of " << buff_pow << " (" << buff_root << " ^ 2)" << endl << endl;
  47.                 break;
  48.             }
  49.  
  50.             x++;
  51.         }
  52.  
  53.     }
  54.     cout << "---------------------------------------------------------------------END";
  55.     delete[] numbers;
  56.     stab.clear();
  57.     _getch();
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement