#include #include using namespace std; int min_factor(long num) { vector v; for (int i = 1; i < (int)sqrt(num)+1; ++i) { if (num % i == 0&&i*i!=num){ v.push_back(i); v.push_back(num/i); } if (num % i == 0&&i*i==num){ v.push_back(i); } } sort(v.begin(),v.end()); if(v.size()==2) { return v[0]; } else { return v[1]; } } int total_moves(int num,int p) { if(num==1) { return num; } int temp=num/p; int new_min_factor=min_factor(p); return 1+(temp*(total_moves(p,new_min_factor))); } int longestSequence(vector a) { int total_movess=0; for (auto i = a.begin(); i != a.end(); ++i) { //cout<<*i<> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long result = longestSequence(a); cout << result << endl; //longestSequence(a); return 0; }