将一个正整数分解质因数。不用考虑输入为0,1或者负数。
输入格式:
输入大于等于2的正整数
输入样例:
在这里给出一组输入。例如:
100
结尾无空行
输出样例:
在这里给出相应的输出。例如:
100=2*2*5*5
结尾无空行
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int f = 0, f1 = 0;//f标志代表是否为第一个质因数,f1标志代表是否找到质因数
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int n1 = n;//将n值存起来,因为后面n值会变,为了保证循环次数不能变,所以存起来
System.out.print(n+"=");
for (int i = 2; i <= n1 / 2; i++){
while(n % i == 0){
n = n / i;
if (f == 0){
f = 1;
f1 = 1;
System.out.print(i);//第一个质因数不加"*"
}
else{
System.out.print("*"+i);//之后的质因数之前都要加"*"
}
}
}
if (f1 == 0){
System.out.print(n);//未找到质因数直接打印自身
}
}
}
分解质因数特别基础,就是利用一个循环算法就可以解决的。