From df4952ecb40036a1296c2485cf030cb37ea8079d Mon Sep 17 00:00:00 2001 From: Jonathan Chan Date: Fri, 24 Aug 2018 23:41:53 -0700 Subject: [PATCH] Problem 85 --- 85 | Bin 0 -> 8720 bytes 85.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 85 create mode 100644 85.c diff --git a/85 b/85 new file mode 100644 index 0000000000000000000000000000000000000000..a877fcc0696cce41ef29666b46a09c5686322c7a GIT binary patch literal 8720 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 MF0ghuf;-Fq7oUp!+W-In literal 0 HcmV?d00001 diff --git a/85.c b/85.c new file mode 100644 index 0000000..fc99763 --- /dev/null +++ b/85.c @@ -0,0 +1,36 @@ +// For a rectangle of dimensions n x m, there are a total of +// sum_{i=1}^n sum{j=1}^m i*j = 1/4 n(n+1)m(m+1) rectangles +// Therefore, we want to find nm such that n(n+1)m(m+1) is closest to 8 000 000 +// We only need to try for values of n(n+1) up to ceil(sqrt(8000000)) = 2829 +// which means an n of at most 53 + +#include +#include +#include + +#define SIZE 2000000 + +// solve X(X+1) = n for X +int solveXX1(int n) { + return (sqrt(4*n + 1) - 1)/2; +} + +int rectangles(int n, int m) { + return n * m * (n+1) * (m+1) / 4; +} + +int main(void) { + int n = 0, m = 0, diff = SIZE; + int MAX_N = solveXX1(sqrt(4 * SIZE)); // n(n+1) = ceil(sqrt(8000000)) --> n = 53 + for (int i = 1; i <= MAX_N; i++) { + int mm1 = 4 * SIZE/(i*(i + 1)); // m(m+1) = 8000000/(n(n+1)) + int j = solveXX1(mm1); // m(m+1) = mm1 --> m^2 + m - mm1 = 0 --> m = 1/2 (sqrt(4mmi + 1) - 1) + int nextDiff = abs(SIZE - rectangles(i, j)); + if (nextDiff < diff) { + n = i; + m = j; + diff = nextDiff; + } + } + printf("%d x %d = %d, with %d rectangles.\n", n, m, n * m, rectangles(n, m)); +} \ No newline at end of file