- 浏览: 53943 次
- 性别:
- 来自: 北京
文章分类
最新评论
package com.viking.divide; /** * * @author viking * * 求整数的因子分解 比如12可以分解为 * 12=12 * 12=6*2 * 12=4*3 * 12=3*4 * 12=3*2*2 * 12=2*6 * 12=2*2*3 * 12=2*3*2 * * 基本思路 用分治的思想 * n=x1*x2*x3*x4.....xm * n=x1*(x2*x3*x4.....xm) * n=x2*(x1*x3*x4.....xm) * ... * n=x1*x2*(x3*x4.....) * * f(n)=1+f(n/x1)+f(n/x2)+f(n/x3)+.....+f(n/xm) * 递归条件当n为素数时,f(n)=1 */ public class Factor { public static void main(String[] args) { int n = 100; System.out.println("sum=" + factor(n, n + "=")); } public static int factor(int n, String path) { // n=n*1; int sum = 1; // 求 n的所有因子,但是一个数的最大因子最大是该数的一般 int m=n/2; for (int i = 2; i <= m; i++) { if (n % i == 0) { // i是n的因子 sum += factor(n / i, path + i + "*"); } } // print itself System.out.println(path + n); return sum; } }
学习中,如果是单纯的求因子分解的个数,可以缓存每个因子的结果,这样可以减少计算量
发表评论
-
查找任意两个节点的公共父节点
2011-11-04 00:42 3554基本思路是对需要查找的节点赋权值为1,其它节点权值为0.那么只 ... -
树中任意两个节点之间的距离
2011-11-04 00:28 9624树中任意两个节点之间的距离是指,从一个节点到另一个几点之间的一 ... -
用5,7,12加减运算,求最少步数得到任意数n
2011-11-03 23:59 1270package www.viking.com.algori ... -
线段重合问题
2011-11-01 13:21 2978问题:y=ax+b; 有很多线段{x0,y0,x1,y1}{ ... -
区间覆盖问题
2011-11-01 13:00 1651问题: 有很多区间,比如[1.1,3.4] [1,3] [-1 ... -
数组循环移位
2011-10-31 22:09 1442比如1 2 3 4 5 循环移位1位 ... -
最大子矩阵的和
2011-10-25 15:30 764package www.viking.com.algo ... -
最大字段和
2011-10-25 14:43 925package www.viking.com.algo ... -
有重复数的全排列
2011-10-21 18:34 8127有重复数的全排列和全排列的算法是一样的 只不过要去掉重复的序列 ... -
有重复数的组合
2011-10-21 18:33 932package com.viking.divide; ... -
无重复数组合
2011-10-21 18:30 931无重复数的组合问题 就 ... -
m n 全排列
2011-10-21 08:54 851n个字符中长度为m的全排列 public class MN ... -
子集的全排列
2011-10-21 08:51 865比如 123 1 2 3 12 21 13 31 23 32 ... -
google笔试题 人民币问题
2011-10-20 23:57 776方法一:递归方法 对 charge[]={1,5,10,20, ... -
查找无向图中的环
2011-10-19 23:51 1922static int[][] M = { { 0 ... -
无重复数的全排列问题
2011-10-18 09:51 911采用分治思想,很多书都有。。。 这里只是引用一下,因为有很几 ... -
爬台阶问题
2011-10-18 07:57 946package com.viking.dynamic; ... -
查找中间数
2011-10-18 00:21 758package com.viking.divide; ...
相关推荐
Description 大于1的正整数 n 都可以分解为 n = x1 * x2 * ......递归实现整数因子分解的计数。 假设对正整数n的因子分解计数为solve(n)。 1)当n=1时,计数加1。 2)当n>1时,对每个因子i,计算solve(n/i)。
9718 整数因子分解 时间限制:1000MS 内存限制:1000K 提交次数:0 通过次数:0 题型: 编程题 语言: 无限制 Description 大于1的正整数 n 都可以分解为 n = x1 * x2 * ... * xm 例如:当n=12时,共有8种不同的分解...
整数因子分解问题是一个在计算机科学和数学领域中常见的问题,涉及到数论的基本概念。问题的核心在于找到一个正整数的所有可能的因子分解方式。在上述的描述中,整数因子分解指的是将一个大于1的正整数n表示为若干个...
### 整数因子分解的基本概念 整数因子分解是指将一个正整数表示成若干个正整数相乘的形式。例如,数字12可以被分解为多种不同的形式,如12 = 6 * 2、12 = 4 * 3等。这种分解方式在数学和计算机科学中都有广泛的应用...
整数因子分解问题:给定正整数n,编写递归算法,计算n共有多少种不同的分解式,并输出这些分解式。
大于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...
整数因子分解 int Fenjie(int n) { int num = 0; for (int i = 2;i;i++) { if(n%i==0) { num++; num+=Fenjie(n/i); } } return num; }
实现2-11整数因子分解问题.cpp
对于给定的数N,计算N共有多少种不同的分解式
整数因子分解问题 问题描述: 大于1 的正整数n可以分解为:n=x1*x2*…*xm。 算法设计: 对于给定的正整数n,编程计算n共有多少种不同的分解式。 例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6*2; 12=4*3;...
在C++中实现整数因子分解,主要是寻找一个给定正整数的所有正因子,即能够整除该数的非负整数。下面将详细讨论这个问题的实现方法、算法设计与分析。 首先,我们可以采用简单的遍历法来解决这个问题。从1开始,依次...
整数因子分解问题 算法设计思路: n=x1*x2*x3*…*xm,分治思想设计(分解过程): n=x1*(x2*x3*…*xm); n=x1*x2*(x3*…*xm); … n=x1*x2*x3*…*xm; 分治过程: void factor(int n){ int i; if(n==1)total++; else ...
在这个名为“分治法求格雷码和整数因子分解问题”的Python压缩包中,包含了两个使用分治策略的代码示例:一个用于生成格雷码,另一个用于执行整数因子分解。 首先,我们来看格雷码(Gray Code)的问题。格雷码是一...