最多约数问题

问题描述: 
        正整数x的约数是能整除x的正整数。正整数x 的约数个数记为div(x)。例如,1,2,5,10 都是正整数10 的约数,且div(10)=4。设a 和b 是2 个正整数,a≤b,找出a和b之间约数个数最多的数x。 
编程任务: 
对于给定的2个正整数a≤b,编程计算a 和 b 之间约数个数最多的数。 
数据输入: 
输入数据由文件名为input.txt的文本文件提供。文件的第1 行有2 个正整数 a和 b。 
结果输出: 
程序运行结束时,找到a 和b之间约数个数最多的那个数及最多约数个数。

测试数据:【只给出最多约数个数, time limit: 1s】
[1, 36]                               9
[1000000, 2000000]           288
[999998999, 999999999]    1024
[1, 1000000000]                 1344
[999999999, 1000000000]   56
[100, 1000000000]              1344

 

思想:

      设正整数x的质因子分解为
x=p1^N1 × p2^N2 ×……pi^Ni
则 div(x)=(N1+1)(N2+1)……(Ni+1)

posted @ 2015-05-10 01:08  disneyland  阅读(1403)  评论(0编辑  收藏  举报