代码如下:
package cn.edu.hdu.test;
public class Demo4 {
/**
* 找出(1,100000)区间内因子最多,并且数最小的数。
* @param args
*/
public static void main(String[] args) {
int[] res = new int[100000];//res[ i ]数组里存放的是,数为i的因子的个数(这里全部都除去了共同因子1的情况的)。
for(int i=1;i<50000;i++)
for(int j=2*i;j<100000;j+=i)
res[j]+=1;
int max=0;
for(int i=2;i<100000;i++)
if(res[i]>res[max])
max=i;
System.out.println("拥有最多因子,并且数最小的数是: "+max);
}
}
ps:跟室友讨论了下,听了室友的思路,写下了这个算法。