【题目来源】:质因数2
【题目描述】:
将一个正整数N(1< N< 32768)分解质因数,把质因数按从小到大的顺序输出。最后输出质因数的个数。
输入
一行,一个正整数
输出
两行,第一行为用空格分开的质因数
第二行为质因数的个数
第二行为质因数的个数
样例输入
66
样例输出
2 3 11 3
【解析】:刚开始理解错了题意,以为输出既是质数又是输入的数的因数即可。结果提交了好几遍还是不对。仔细分析了一下题目,要求的是将n分解,输出的数的乘积要等于n。
【代码】:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int sum = 0;
int i = 2;
while (a > 1) {
if (a % i == 0) {
a /= i;
sum++;
System.out.print(i + " ");
} else
i++;
}
System.out.println();
System.out.println(sum);
}
}