`
啸笑天
  • 浏览: 3462189 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

求能除尽1至n的最小整数

阅读更多

 

为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。

但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。

事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。

我们希望寻找到能除尽1至n的的每个数字的最小整数。

不要小看这个数字,它可能十分大,比如n=100, 则该数为:

69720375229712477164533808935312303556800

为此,有必要使用BigInteger来记录这样的大数。

 

import java.math.BigInteger;
public class My1
{
	// 求能除尽1~n 每个数字的最小整数
	public static BigInteger f(int n)
	{
		int[] x = new int[n+1];
		
		for(int i=1; i<=n; i++) x[i] = i;
		
		for(int i=2; i<n; i++)
		{
			for(int j=i+1; j<=n; j++)
			{
				if(x[j] % x[i]==0)x[j]=x[j]/x[i];   // 
			}
		}
		
		BigInteger m = BigInteger.ONE;
		for(int i=2; i<=n; i++)
		{
			m = m.multiply(BigInteger.valueOf((long)x[i]));   // 
		}
		
		return m;
			
	}
	
	public static void main(String[] args)
	{
		System.out.println(f(6));	
	}
}
//123456
//123253
//123251
1
4
分享到:
评论
1 楼 278660745 2012-10-27  
你好!能解释下,上面程序的运行原理吗?不是很明白他为什么那样求??

相关推荐

    蓝桥杯决赛题答案.docx

    公倍数是指能除尽 1 至 n 的每个数字的最小整数。在该问题中,需要编写程序,实现对用户输入的 n 求出 1~n 的最小公倍数。 知识点: * 公倍数:能除尽 1 至 n 的每个数字的最小整数。 * 程序设计:需要编写程序,...

    1000-4000能被7和17整除的数

    如果一个数n能被7和17整除,那么n % 7 == 0且n % 17 == 0,其中%是取余运算符。 6. ** memo 控件**:在Delphi中,memo是一个文本控件,用于显示和编辑多行文本。在这个程序中,计算结果将被输出到memo中,供用户...

    2022年青岛市程序设计竞赛试题小学组.doc

    本题要求编写一个程序,找到1至n(10≤n≤1000)之间不能被2、3、5、7除尽的整数的个数。 知识点: * 算法设计 * 循环语句 * 数组操作 第3题:十进制数的三进制表示 本题要求编写一个程序,从键盘读入一个十...

    python判断一个数是否能被另一个整数整除的实例

    在实际编程中,这种整除性的判断应用广泛,比如在计算平均数、求最大公约数(GCD)、最小公倍数(LCM)等场景。掌握这种基本的数学和编程技巧,对于理解和解决问题非常有帮助。了解并熟练运用这些基本操作,可以为...

    软件设计大赛

    在这个问题中,需要寻找到能除尽 1 至 n 的每个数字的最小整数。这个问题的答案需要使用 BigInteger 来记录,因为可能会出现非常大的数字。 填空 1:x[j] /= x[i] 或者 x[j] = x[j]/x[i] 填空 2:BigInteger.value...

    数论模板精心整编

    最小公倍数(Least Common Multiple, LCM)是指能被几个给定的数共同整除的最小正整数。可以通过最大公约数来求解最小公倍数: \[lcm(m, n) = \frac{m \times n}{gcd(m, n)}\] 代码实现如下: ```c++ int lcm(int...

    ACM算法与程序设计(十二)1

    首先,整除是数论中的基本概念,如果一个整数a可以被另一个整数b无余数地除尽,即存在整数q使得a=bq,我们就说a整除b,记作a|b。整除有若干性质,例如如果a|b和a|c,那么对于任何x和y,a|(xb+yc);如果a|b和b|c,...

    欧拉计划1-20题中文

    要找到最小的能被1至20中每个数字整除的正整数,我们需要找到这些数字的最小公倍数(LCM)。一种方法是从1至20中最大的数(20)开始,逐步增加并检查每个数是否能被1至20中的每个数字整除。 **示例代码(Python):...

    C语言实验七函数实验报告.pdf

    四、求两个整数的最大公约数和最小公倍数 在本实验中,我们编写了两个函数,一个是great_commom函数,用于计算两个整数的最大公约数,另一个是low_common函数,用于计算两个整数的最小公倍数。great_commom函数使用...

    初等数论100例.pdf

    3. 整除性:如果整数a能够被整数b(不为零)除尽,则称a是b的倍数,b是a的一个因数。整除的概念是数论的基础,它导致了如最大公约数、最小公倍数等概念。 4. 欧几里得算法:这是一系列辗转相除的过程,用于计算两个...

    [地方教师公开招聘考试密押题库与答案解析]广东省广州市越秀区中小学教师公开招聘考试小学数学真题.docx

    整除是指一个整数可以被另一个整数无余数地除尽,而1.5÷0.5=3表示1.5能被0.5除尽,但因为1.5和0.5都不是整数,所以不能说1.5被0.5整除。正确的说法是C选项,1.5能被0.5除尽。 2. **分数与假分数**:分数单位是的...

    六年级数学上册 1.1 1.4 数的整除同步测试题(无答案) 沪教版五四制 试题.doc

    - (3) m÷n=6,说明m是n的倍数,n是m的因数,6也是m的因数,但不能说m是倍数,因为它也可以被1整除,所以选项A错误。 - (4) 能被16整除的数一定是4的倍数,因为16=4×4,选项D正确。 - (5) 所有素数中,偶数的...

    递归特训(共11道题)1204.pdf

    5. **最大公约数与最小公倍数**:使用欧几里得算法(辗转相除法)求两个正整数`a`和`b`的最大公约数(GCD)和最小公倍数(LCM)。GCD可通过递归实现,若`b`为0,则`a`为GCD;否则,继续求`b`和`a`除以`b`的余数的GCD...

    信奥中的数学 数论 第6讲 约数的个数--2022.05.14.pdf

    这是因为n不能被自己除尽,所以n不是自己的约数,其他约数成对出现。 作业中的题目同样涉及到上述知识点,例如求105的约数个数,需要将105分解为3 * 5 * 7,然后计算约数个数;证明非平方数的约数个数为偶数,需要...

    2016数论.pptx

    - **素数分布**:在1至\(n\)中,素数大约有\(n / \ln n\)个。 #### 素数判定 - **试除法**: - O(n):从2到\(n-1\)逐个尝试除尽。 - O(\(\sqrt{n}\)):从2到\(\sqrt{n}\)进行试除。 - **米勒-拉宾素数判定**:...

Global site tag (gtag.js) - Google Analytics