题目12:第一个拥有超过500个约数的三角形数是多少?
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
下面我们列出前七个三角形数的约数:
1: 1
3: 1,3
6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28
可以看出28是第一个拥有超过5个约数的三角形数。
那么第一个拥有超过500个约数的三角形数是多少?
问题解决方案:
public class num12 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long sum=0;
for(long i=1;i>=1;i++){
sum=count(i);
if(sum>500){
if(math(sum)>=500)
break;
}
}
System.out.println(sum);
}
/**
* 查看有多少个约数
* @param n
* @return
*/
private static long math(long n){
int count=0;
double j=Math.sqrt(n);
for(int i=1;i<=j;i++){
if(n%i==0&&n/i>0){
count+=2;
}else if(n/i<=0){
break;
}
}
if(count>=500)
System.out.println("数值:"+n+" 约数:"+count);
return count;
}
/**
* 计算前n位数之和
* @param n
* @return
*/
private static long count(long n){
long sum=0;
for(int i=1;i<=n;i++){
sum+=i;
}
return sum;
}
//答案:76576500
}
问题答案:76576500