求连续的分解因子。
从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;
}
本文介绍了一种寻找整数连续分解因子的算法实现。通过遍历从2到该整数平方根范围内的数字,找到能够连续整除原数的最大序列,并输出这一序列。此算法可用于数学运算及因数分解等场景。
634

被折叠的 条评论
为什么被折叠?



