求连续的分解因子。
从2开始,然后整除,能整除,就不断的自增去看,最多能多长。
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int n;
vector <int> Ans;
int main() {
cin >> n;
int maxFactor = sqrt(n);
int MaxCount = 0;
int MaxPos = n;
for (int i = 2; i <= maxFactor; i++) {
int t_n = n;
int p = i;
while (t_n % p == 0) {
t_n /= p;
p++;
}
if (p - i > MaxCount) {
MaxCount = p - i;
MaxPos = i;
}
}
if (MaxCount == 0) {
cout << 1 << endl;
cout << n << endl;
return 0;
}
cout << MaxCount << endl;
cout << MaxPos++;
for (int i = 0; i < MaxCount -1; i++) {
cout << "*" << MaxPos++;
}
cout << endl;
return 0;
}