题目描述
知识点: 枚举
思路: 枚举起始的连续序列即可。
#include<iostream>
using namespace std;
typedef long long ll;
ll n;
ll ans;
ll l,r;
bool judge(int l,int r){
ll ans = 1;
for(ll i = l;i <= r;i++)
{
ans *= i;
if(ans > n) return false;
}
if(n % ans == 0) return true;
return false;
}
bool is_prime(ll n){
if(n == 1) return false;
for(ll i = 2;i <= n/i;i++)
if(n % i == 0) return false;
return true;
}
int main(){
cin>>n;
if(is_prime(n)) {
cout<<"1"<<endl;
cout<<n;
return 0;
}
for(ll i = 2;i < 1000;i++){
for(ll j = i;j < 1000;j++){
if(judge(i,j) && j - i + 1 > ans){
ans = j-i+1;
l = i;
r = j;
}
}
}
cout<<ans<<endl;
for(ll i = l;i <= r;i++){
if(i != r) cout<<i<<"*";
else cout<<i;
}
return 0;
}