将一个数分解质因数

分解质因数

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
    a)如果这个质数恰等于n,则说明分解质因数的过程已经结束,
    打印出即可。
    b) 如果n不等于i,i能被n整除,则应打印出i的值,
    并用n除以i的商,作为新的正整数n,重复执行第一步。

    提示:如果一个自然数能写成两个自然数的乘积,那么这两个自然数就叫作原来那个数的因数。

package com.lut.wy;

import java.util.Scanner;

public class Test6_4 {
	public static void divide(int n, int s, int N) {
		if (prime(n) == 0 && s != N) {
			for (int i = 2; i <= n; i++) {
				if (n % i == 0) {
					s = s * i;
					System.out.print(i + "*");
					divide(n / i, s, N);
					break;
				}
			}
		} else {
			System.out.print(n + "=" + s * n);
			return;
		}
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		divide(n, 1, n);
	}

	/**判断递归的n值是否为质数
	 * @param n
	 * @return
	 */
	public static int prime(int n) {
		if (n == 2 || n == 3)
			return 1;
		if (n % 6 != 1 && n % 6 != 5)
			return 0;
		for (int j = 5; j <= Math.sqrt(n); j += 6)
			if (n % j == 0 || n % (j + 2) == 0)
				return 0;
		return 1;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_31987435/article/details/81303420