`
凤舞凰扬
  • 浏览: 66608 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

求一段连续自然数的最小公倍数

阅读更多

      本来是有个问题,如何在HTML中只使用一个table(也就是不能嵌套table,不使用div)的情况下,一个table有N行,每行的列数与对应的行的位置是相同的(也就是1行有1列,第2行有两列,依次类推,第N行有N列),要求每行中的每列都平均分割显示。

      当时一下子没有想起来,以为通过colspan加width可以实现,后来发现不对。只好用一个相对愚蠢的方式,也就是算出1到N之间的最小公倍数,然后对于每行,在除以行数,就得出colspan的值,从而实现这个问题。比如说有6行,它们的最小公倍数是2*5*6也就是60,那么第1行就是colspan=60, 第2行就是colspan=30, 第3行就是colspan=20,第4行就是colspan=15, 第5行就是colspan=12, 第6行就是colspan=10. 这样也就可以实现上述问题,当然了,这种方法是在N不会太大的情况下,否则最小公倍数是会溢出的。

      不过这个问题给我另外一个思考,如果N未定,但有限(比如不会溢出),那么如何比较快速有效地找到一系列连续自然数的最小公倍数?这种高效,本人希望是不仅对计算机而言,更对人而言。比如说通过数相乘然后除以下一个自然数,模数为0的忽略,不为0的再累积乘的方式,对计算机而言是快速的,但是对人而言就是复杂的了(每次计算一个大数除以一个较小数都比较麻烦)。

      虽然想到下面这个简单的算法,个人认为不算那么高效(因为需要对合数进行分解)。

      1. 对于每个数,如果是素数,则一定是最小公倍数的构成,参与计算。如果是合数,则分解成一组素数。

      2. 对于每个素数,都有一个类似map的结构(这种结构不仅仅是指语言的中map,而是类似的二维表),key为素数,value为素数出现的次数(可以是出现在自然数列中的,也可以是由合数分解出来的)。

      3. 如果合数分解出的素数组存在于map中(key=素数,value>=分解的素数次数),则该合数不参与计算中。

 

      呵呵,有兴趣的朋友可以讨论讨论,提提自己的想法。

 

 

----2009-10-27补充----

    昨天吃完饭散步的时候,突然把三楼elmar的数学原理想通了,其实一点都不难。我们知道任何合数都可以分解成两个或以上素数,因为合数本身是需要在连续数列范围中,那么分解出来的素数的乘积自然也必小于连续数列的最大边界数,又可以知道,由最小素数的幂次方肯定是最小值(也就是a<b<c, abc均为自然数, a*a*a<a*b*c),所以也就有了三楼列出的算法了。

   简单表述下,就是:

  1. 找出一段连续自然数列中的所有素数。

  2. 循环这个有序的素数数组,计算每个素数不大于自然数列中最大值的幂,然后累积相乘(这里有个优化,当某个下标的素数的平方已经开始大于最大值时,改下标及其后续素数均不需要在进行重复检查计算)

  顺便回到这个题目的最初原因,去构造这样一个表格,如果准确的话,其实这个N是必须小于9的,也就是最多是8,如果N为9,其最小公倍数将超过1000(9和10,均为2520),这样的colspan大部分浏览器不识别(包括IE, FIREFOX, google chrome)。当然了,可以近似地完成后续(至少从界面上看不出太多差别)

分享到:
评论
2 楼 elmar 2009-10-26  
leeldy 写道
我知道一个非常简单的加法方法求多个自然数的最小公倍数,只有加法和循环,循环次数过多,我怕随着数的增多,效率会越来越低。
不过用传统的辗转相除法,N的数要做N-1辗转相处,效率也无法保证。


准备1-N之间的质数的集合
然后求每个质数的不大于N的最大幂,比如N=30时,2对应的最大幂是4。
然后最小公倍数就是所有质数的相应幂的积

比如N=10
小于10的质数有2,3,5,7
对应的最大幂是:3,2,1,1
则最小公倍数是:2^3x3^2x5^1x7^1 = 2520

不过这样做估计会很吃内存的


1 楼 leeldy 2009-10-26  
我知道一个非常简单的加法方法求多个自然数的最小公倍数,只有加法和循环,循环次数过多,我怕随着数的增多,效率会越来越低。
不过用传统的辗转相除法,N的数要做N-1辗转相处,效率也无法保证。

相关推荐

    最大公因数最小公倍数习题.doc

    两个自然数的最大公因数与最小公倍数的乘积等于这两个数的乘积。 通过典型例题,可以更好地理解最大公因数和最小公倍数的应用。例如,在有三根铁丝,想要把它们截成同样长的小段时,需要求出这三个数的最大公因数,...

    小学六年级最大公约数与最小公倍数复习题精选.doc

    【最大公约数与最小公倍数】是小学六年级数学中的一个重要概念,涉及到数的整除性质和因数分解。最大公约数(Greatest Common Divisor, GCD)是指两个或多个非零整数共有约数中最大的一个,而最小公倍数(Least ...

    小学奥数专题最小公倍数.doc

    这是一个关于分数和等分的题目,需要找到10、12、15的最小公倍数,然后计算木棍被锯成的段数。 **练习五**: 1. 分别找出12、15、20的最小公倍数,计算木棍被锯成的段数。 2. 这是一个涉及步长和足迹重合的问题,...

    五年级数学最大公因数与最小公倍数练习题.doc

    21) 问题23中的最大公因数和最小公倍数,如3个连续自然数abc,c=b+1,b=a+1,它们的最小公倍数是abc,最大公因数是1。 22) 问题24中的最大公因数和最小公倍数,如2、3、5除都余1的最小整数是30+1=31,最小三位整数...

    部编版第27讲 最小公倍数(二).doc

    这类问题涉及到求两数的最大公约数和最小公倍数,通过计算两个间隔的最小公倍数来确定不需要移动的电线杆数量。 训练四的问题同样要求找出在改变间隔后不需要移动的旗子或树的数量。 例题5:一根木棍按照不同等分锯...

    六年级下册数学总复习试题-倍数、公倍数和最小公倍数专项练(通用版 含答案).docx

    5. **最大公因数与最小公倍数的应用**:两个数的最大公因数是6,最小公倍数是90,已知其中一个数是18,可以用公式计算另一个数:两个数的乘积等于它们的最大公因数和最小公倍数的乘积,所以另一个数是90÷18=5,选项...

    五年级奥数最大公约数和最小公倍数练习题.pdf

    例4:通过分解连续自然数的最小公倍数找出这三个数。 例5:通过年龄比例问题,结合公倍数和公约数概念,找出爷爷和小明的年龄。 同步演练题则进一步强化了这些技能的运用,包括找三个数的公约数和公倍数,以及解决...

    小学奥数公因数和公倍数.doc

    求最小公倍数的方法类似,可以使用分解质因数法、短除法。最小公倍数的性质包括: 1. 两个数的任意公倍数都是它们最小公倍数的倍数。 2. 两个互质的数的最小公倍数是它们的乘积。 3. 若两个数成倍数关系,最大公约数...

    公因数、公倍数综合练习题.doc

    最后的几个问题是关于连续自然数的最小公倍数和和的计算,需要通过分解因数并找到合适的连续自然数来解答。例如,三个连续自然数的和是27,这三个数是8,9,10,它们的最小公倍数是720。其他类似问题可以通过类似的...

    五年级数学下册专项复习数与代数第二组公倍数和公因数苏教版

    3. **相邻自然数的公因数与公倍数**:相邻的自然数,如a和b,它们没有共同的因数,除了1之外,因此最大公因数是1,最小公倍数是它们的乘积,即a*b。 4. **连续奇数**:两个连续奇数的和是12,意味着这两个奇数是5和...

    排序 最小公倍数 最大公约数 素数C语言算法

    这里我们关注的是四个重要的算法:排序、最小公倍数(LCM)、最大公约数(GCD)以及素数判断。这些概念在计算机科学中占据了核心地位,无论是数据结构还是算法设计,它们都是不可或缺的基础。 首先,让我们讨论排序...

    五年级数学下册 公倍数和公因数一课一练(无答案) 苏教版 试题.doc

    2. **求最大公因数和最小公倍数的方法**:可以用分解质因数的方法来求解,如[18,12],18=2×3×3,12=2×2×3,最大公因数2×3=6,最小公倍数2×2×3×3=36。 3. **分数和比例关系**:在给定的题目中,如a=5b,...

    JAVA基础 第一篇:素数、合数、质数分解、最大公约数、最小公倍数.docx

    比如,可以创建一个名为`gcd`的方法来计算两个数的最大公约数,然后创建一个名为`lcm`的方法来计算最小公倍数。这样,无论在哪个地方需要这些计算,只需调用相应的方法即可,避免了重复编写代码。 例如: ```java ...

    人教五年级下学期数学易错题PPT教案.pptx

    - 如何找到两个数的最大公约数和最小公倍数,例如47和37去除以一个数都余2,可以通过求差值来确定这个数。 - 分组问题,如男女学生分组,每组人数相同,需要找到男女学生数的最大公因数。 - 长方形剪切成正方形的...

    最新青岛版(五四制)小学数学四年级下册《分数加减法(一)》精选习题1.pdf

    * 2.ab和都是自然数,如果 ab10 , ab和 的最大公因数是(),最小公倍数是()。 这个问题是让学生计算最大公因数和最小公倍数。首先要将ab和分解质因数,然后计算最大公因数和最小公倍数。答案是2和10。 * 3 ....

    青岛小学五年级下册最大公因数PPT课件.pptx

    但是,当要求最小公倍数时,连续的三个自然数的最小公倍数是它们的乘积除以它们的最大公因数。例如,找到三个连续自然数的最小公倍数为360或1092,可以先找出这三个数,然后逆向计算它们的最大公因数。 6. **年龄和...

    五年级数学下册知识点复习及习题.doc

    - 截断钢管问题,需要找到两个长度的最小公倍数来确定每小段的长度。 在实际学习过程中,学生需要通过大量的练习来巩固这些知识点,理解并熟练应用它们来解决各种数学问题。同时,家长和教师可以通过设计不同类型...

    五年级数学下册第三单元测试题精选.doc

    10. **互质数的最小公倍数**:两个互质的自然数的最大公因数是1,它们的最小公倍数是它们的乘积。所以,两个自然数的最大公因数是1,最小公倍数是14的可能组合有2和7。 11. **最大公因数的计算**:如果A=2×3×7,B...

    求最大公约数练习.PPT

    如果两个数的最大公约数是15,最小公倍数是90,其中一个数是30,那么另一个数是45;最后,一盒铅笔至少有60支,因为它是4、5、6的最小公倍数。 在给出的条件中,要求两数的最大公约数是14,和是98,那么这两个数...

Global site tag (gtag.js) - Google Analytics