`
aiyanbo
  • 浏览: 65517 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用递归分解因数

    博客分类:
  • java
阅读更多

有时候,我们需要对一个数字进行因数分解,我用递归帮我们做这件事情,如有不妥之处,还望各位朋友指正!

 

package com.aiy.test;

/**
 * @author aiyanbo
 * @email ayanbo@yeah.net
 */
import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		Test test=new Test();
		for (Integer i : test.factor(64)) {
			System.out.print(i+"\t");
		}
	}
	private ArrayList<Integer> list=new ArrayList<Integer>(0);
	private void dissolution(int i){
		for(int j=2;j<i;j++){
			if(i%j==0){
				list.add(j);
				dissolution(i/j);
				break;
			}
		}
	}
	private void last(int i){
		int temp=1;
		for (Integer num : list) {
			temp*=num;
		}
		if(i/temp>=2)
			list.add(i/temp);
	}
	public ArrayList<Integer> factor(int i){
		dissolution(i);
		last(i);
		return list;
	}
}

 

1
0
分享到:
评论

相关推荐

    素因子分解,递归,c实现

    该程序是一个典型的使用递归实现素因子分解的例子,展示了如何通过递归算法高效地解决数学问题,并且通过C语言的具体实现加深了对递归原理的理解。此外,程序还涉及到了数组、循环以及基本的输入输出操作等C语言基础...

    深入分析C语言分解质因数的实现方法

    首先来看一个最简单的C语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); while(data &gt; 1) { if(data % i == 0) { printf("%d ", i); data /= i; } else i++;...

    java 分解质因数

    此程序可以找出你给的数的质因数,用java编译

    Java实现的质因数分解操作示例【基于递归算法】

    在本文中,我们使用递归算法来实现质因数分解操作。递归算法的优点是可以简化代码、提高代码的可读性和可维护性。 Java实现质因数分解 下面是Java实现质因数分解操作的代码示例: ```java import java.util....

    整数因子分解问题的递归算法

    大于1 的正整数n可以分解为:n=x1*x2*…*xm。 算法设计: 对于给定的正整数n,编程计算n共有多少种不同的分解式。 例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6*2; 12=4*3; 12=3*4; 12=3*2*2; 12=2*6...

    Python实现正整数分解质因数操作示例

    本篇将深入探讨如何使用Python实现正整数的质因数分解,包括循环和递归两种方法。 首先,我们来看一种基于循环的实现方式。在这个例子中,`div_func` 函数接收一个正整数 `n` 作为参数,通过一个 `while` 循环不断...

    将一个正整数分解质因数.docx

    在编程领域,特别是Java语言中,正整数的质因数分解是一项常见的任务。质因数分解是指将一个正整数表示为若干个质数...虽然它不是最优化的解决方案,但对于理解质因数分解的概念和递归函数的应用,这是一个很好的起点。

    分解质因数两例.doc

    否则,继续对`n/factor`进行递归分解,并将找到的因子`factor`添加到结果列表`result`中。 `test` 方法则是另一种非递归的方式来分解质因数,适用于较小的整数。它遍历从2到`n/2`的所有数字,检查是否能整除`n`。...

    分解质因数

    该函数接受一个正整数,用循环和递归的方式来寻找并打印出所有质因数。基本方法是每次尝试去除当前数的最大质因数,直到剩下一1为止。例如: ```cpp void factorize(int num) { if (num == 1) { return; } for ...

    整数因子分解问题(分治法\C++实现)

    Description 大于1的正整数 n 都可以分解为 n = x1 * x2 * ......递归实现整数因子分解的计数。 假设对正整数n的因子分解计数为solve(n)。 1)当n=1时,计数加1。 2)当n&gt;1时,对每个因子i,计算solve(n/i)。

    PHP实现的分解质因数操作示例

    分解质因数的过程中,程序会递归地使用质数去测试能否整除当前待分解的数,直到剩下的数为质数或1为止。 具体来看,示例中包含了两个主要的PHP函数。第一个函数是get_zhishu,用于获取指定范围内的所有质数并将它们...

    Java实现整数分解质因数的方法示例

    在Java中,我们可以使用循环来实现质因数分解。首先,我们需要判断一个数是否为质数,如果是,则输出该数本身;否则,我们需要找到该数的质因数,并将其输出。 具体的实现方法可以如下所示: 首先,我们需要定义一...

    Java实现将一个正整数分解质因数

    * 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。...  *这个题目很明显是要用递归算法来实现的,打印“*”有些技巧,但也很容易解决,程序如下: import java.util.Scanner; public c

    Java将一个正整数分解质因数的代码

    给出的Java代码实现了一个简单的递归函数来分解质因数。以下是对这段代码的详细解释: 1. `public class exp2`: 定义了一个名为exp2的公共类,这是Java程序的基本组织单元,包含了类的方法和属性。 2. `public ...

    9718整数因子分解

    整数因子分解,也称为因数分解或质因数分解,是数学中的基本概念,它涉及到将一个大于1的正整数表示为其质因数的乘积。在本题中,我们不仅关注质因数分解,而是寻找所有可能的因子组合,无论这些因子是否为质数。 ...

    用递归算法求最大公因子2

    在这种情况下,我们将讨论如何使用递归算法来寻找两个整数的最大公因数,并结合JUnit进行单元测试以确保算法的正确性。 首先,我们定义一个递归函数`gcd(a, b)`,其中`a`和`b`是我们要找最大公因数的两个整数。递归...

    递归and递推习题1.doc

    2. **分解因数**:对于分解因数问题,可以使用递推枚举所有可能的因子,递归地尝试将当前数除以一个因子,并计算所有可能的分解。每种分解都可以视为一个子问题,递归地解决这些子问题,最后计算所有可能的组合。 3...

    最大公约数——三种算法

    最大公约数(Greatest Common Divisor,GCD)是数学中的一个重要概念,它是指能整除...在实际应用中,还可以结合优化技巧,如预计算质因数表来提高质因数分解法的效率,或者使用动态规划来减少循环测试法中的重复计算。

    利用三种算法求最大公约数

    分解质因数法是通过将两个数分别分解为质因数,然后找出它们共同的质因数并相乘得到最大公约数。例如,12 = 2×2×3,18 = 2×3×3,它们的最大公约数是2×3=6。这种方法在处理大数时效率较低,因为分解质因数的...

Global site tag (gtag.js) - Google Analytics