Java 分解质因数
/**
* PrimeFactor.java
* @author:王超
* 2017年3月13日
* wangChaoPA实习工作练习.com.分解质因数.PrimeFactor
* Copyright (c) 2007, 2016 Infopower corporation All Rights Reserved.
*/
package wangChaoPA实习工作练习.com.分解质因数;
import java.util.Scanner;
public class PrimeFactor
{
private static Scanner input = new Scanner(System.in);
/**
* <p>
* 描述:递归函数 分解数为质因数的乘积
* </p>
*
* @param input
* 要分解的数
*/
public static void diGui(int input)
{
if (input <= 1)
{
System.out.print("无解");
}
else if (input == 2)
{
System.out.print(input);
}
else
{
for (int j = 2; j < input; j++)
{
// input不是质数且j是质数
if (input % j == 0 && isPrimeNum(j))
{
// 分解的质因数
System.out.print(j + "*");
// 从新赋值
input = input / j;
// 判断赋值后的input是否为质数
if (isPrimeNum(input))
{
System.out.println(input);
break;
}
else
{
}
// 调用递归函数
diGui(input);
break;
}
}
}
}
/**
* <p>
* 描述:判断是否为质数
* </p>
*
* @param n
* 要判断的数字
* @return
*/
public static boolean isPrimeNum(int n)
{
// 默认所有的n都为质数
boolean result = true;
for (int j = 2; j < n; j++)
{
if (n % j == 0)
{
// 不是质数
result = false;
break;
}
}
return result;
}
/**
* 将一个正整数分解为质因数 例如9 = 3*3
*
*/
public static void main(String[] args)
{
int in = input.nextInt();
System.out.print("分解的质因数为:" + in + "=");
diGui(in);
input.close();
}
}