题意:
找一个数的连乘。
解答:
用暴力枚举即可,枚举到sqrt(N),这里连乘的实现将N%j放到循环的条件里即可实现。
具体的java代码为:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int N=in.nextInt();
in.close();
int max=0;
int t=0;
for(int i=2;i<Math.sqrt(N);i++){//暴力枚举
int temp=getLength(N,i);
if(temp>max){
max=temp;
t=i;
}
}
if(max==0){
System.out.println(1);
System.out.println(N);
}
else{
System.out.println(max);
for(int i=0;i<max;i++){
if(i==max-1){
System.out.print(t+max-1);
}
else{
System.out.print(t+i+"*");
}
}
}
}
public static int getLength(int N,int i){//获得连除的个数
int length=0;
for(int j=i;i<Math.sqrt(N)&&N%j==0;j++){
length++;
N/=j;
}//此处只有连续的数被N除尽才能进去循环,否则当不满足N%j即跳出了循环
return length;
}
}