版权声明:本文为博主原创文章,如有转载或提问请私信 https://blog.csdn.net/ShancoFolia/article/details/72453068
算法提高 质因数2
时间限制:1.0s 内存限制:256.0MB
将一个正整数N(1<N<32768)分解质因数,把质因数按从小到大的顺序输出。最后输出质因数的个数。
输入格式
一行,一个正整数
输出格式
两行,第一行为用空格分开的质因数
第二行为质因数的个数
第二行为质因数的个数
样例输入
66
样例输出
2 3 113
样例输入
90
样例输出
2 3 3 5
4
4
样例输入
37
样例输出
37
1
1
先贴代码
import java.util.Scanner;
public class ADV181 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
in.close();
int i=2;
int[] a=new int[10000];
int index=0;
while(n>1){
while(n%i==0){
a[index]=i;
n/=i;
index++;
}
i++;
}
index=0;
while(a[index]!=0){
System.out.print(a[index]+" ");
index++;
}
System.out.println();
System.out.println(index);
}
}
这道题还是挺简单的,主要就是公因数的算法,以上算法还是挺简单的