You are viewing a single comment's thread. Return to all comments →
I got 100/100 point.
My Solution: we need calculate how many pair (a, b) with: a^2 - b^2 <= n
=> (a - b)(a + b) <= n
Let: a = b + k (with b > 0; k> 0; and k is even, means: k % 2 == 0)
=> k(2b + k) <= n
=> b <= (n/k - k)/2
The result is sum of all b.
We need 1 FOR-loop: from 1 to sqrt(n):
long caculate(n, k) { return (long) ((double) n / k - k) / 2; } // Main: sum = 0; for (int k = 2; k < sqrt(n); k += 2) { b = calculate(n, k); if (b > 0) sum += b; } return sum;
n,k,b.. is Long, not Integer!
GOOD LUCK!!
Seems like cookies are disabled on this browser, please enable them to open this website
Project Euler #173: Using up to one million tiles how many different "hollow" square laminae can be formed?
You are viewing a single comment's thread. Return to all comments →
I got 100/100 point.
My Solution: we need calculate how many pair (a, b) with: a^2 - b^2 <= n
=> (a - b)(a + b) <= n
Let: a = b + k (with b > 0; k> 0; and k is even, means: k % 2 == 0)
=> k(2b + k) <= n
=> b <= (n/k - k)/2
The result is sum of all b.
We need 1 FOR-loop: from 1 to sqrt(n):
n,k,b.. is Long, not Integer!
GOOD LUCK!!