I have to create a code where the user inputs a number which is a perfect square, and I have to show its root. I've made this code, but I'm getting Segmentation Fault 11 , in this piece: int j = squareRootVector[i];
squareRoot.push_back(j);. 
I can't change the code too much, so is there a way that I can do that?
#include <iostream>
#include <vector>
using namespace std;
int main() {
cout <<
 "Enter the number:\n";
    int input;
    int number = input;
    int divider = 2;
    vector<int> squareRootVector;
    vector<int> squareRoot;
    cin >> number;
    for(int divider = 2; number > 1; divider++) {
        while((number % divider) == 0) {
            number /= divider;
            cout << number << endl;
            squareRootVector.push_back(divider); 
        }
    }
    for(int i = 0; i < squareRootVector.size(); i++) {
        cout << squareRootVector[i] << " ";
        /*******PROBLEM*******/
        if(squareRootVector[i] == squareRootVector[i+1]) {
            int j = squareRootVector[i];
            squareRoot.push_back(j);
        }
        /*********************/
    }
    int root;
    for (int i = 0; squareRoot.size(); i++) {
        root = root * squareRoot[i];
    }
    cout << "Square Root of " << input << " is: " << root << endl;
    return 0;
}
 
     
     
     
    