原题链接
https://pintia.cn/problem-sets/994805046380707840/problems/994805138600869888
N有两种情况
1. 素数 输出1 和 N
2. 合数 因为我们求的是连续因子,不需要求求全部因子 ,所以只需要保证我们所求的因子的乘积仍然是N的因子即可
代码
#include <iostream>
#include<cmath>
using namespace std;
int main() {
int num;
while (cin >> num)
{
int start = 0, size = 0;
for (int i = 2, j; i <= sqrt(double(num)) + 1; i++)
if (num % i == 0) {
int sum = i;
for (j = i + 1; j <= sqrt(double(num))+1; j++)
{
sum *= j;
if (num % j == 0 && !(num % sum))
{
continue;
}
else
break;
}
if (size < (j - i))
{
start = i;
size = j - i;
}
}
if (size > 0)
{
cout << size << endl;
for (int i = start; i < start + size; i++)
{
if (i != start)
cout << "*";
cout << i;
}
}
else
cout <<'1'<<endl<< num;
}
}
感谢这篇文章
https://blog.csdn.net/qq_31359295/article/details/51598548
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)