连续因子【枚举】
pta练习题L1-006
思路:
我们直接用n来除以x看是否能被整除,如果能被整除,那么则继续除x+1...
这样操作过后直到结束,就是以x开头的连续因子
而题目要求找到最长的连续因子,那么就枚举x就可以了
x的可能范围是2~sqrt(n)
代码:
#include<bits/stdc++.h>
using namespace std;
#define
signed main(){
int n,i,j,len = 0,start;
cin>>n;
for(i = 2;i <= sqrt(n);++i){
int t = 1;
for(j = i;j <= sqrt(n);++j){
t *= j;
if(n % t != 0)
break;
}
if(j - i > len)
len = j - i,start = i;
}
if(len >= 1){
cout<<len<<"\n";
cout<<start;
for(i = 1;i < len;++i)
cout<<"*"<<start + i;
}
else{
cout<<1<<"\n"<<n;
}
return 0;
}