我的工作問題#12項目歐拉,肚裏如下:通過將自然數時Java代碼項目歐拉#12
三角形數字的序列。因此,第7個三角形數將是1 + 2 + 3 + 4 + 5 + 6 + 7 = 28。前十項將是:
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是第一個有超過五個因子的三角形數字。
第一個三角形數值超過500個除數是多少?
這是我到目前爲止的代碼,但是當它運行控制檯不返回任何內容:
public class Euler12 {
public static void main (String[] args) {
int i = 1;
int x = 2;
boolean found = false;
while (!found) {
if (divisors(i) > 500) {
System.out.println(i);
found = true;
}
else {
i +=x;
x++;
}
}
}
public static int divisors (int n) {
int counter = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) counter++;
}
return counter;
}
}
如果你打印出每次我並根據除數是多少更容易跟蹤 –
你確定它不是很慢,它仍然在運行? – orangegoat