From 36c2236e3f3ec77aad4007f4ac735cfd5f86c8ed Mon Sep 17 00:00:00 2001 From: Jonathan Chan Date: Wed, 7 Dec 2016 00:52:44 -0800 Subject: [PATCH] Problem 44 --- 44 | Bin 0 -> 8152 bytes 44.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 44 create mode 100644 44.c diff --git a/44 b/44 new file mode 100755 index 0000000000000000000000000000000000000000..098cd0779870c922280418835905848236a03689 GIT binary patch literal 8152 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 literal 0 HcmV?d00001 diff --git a/44.c b/44.c new file mode 100644 index 0000000..fbce9da --- /dev/null +++ b/44.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include + +int try = 3000; +int* pentagonalTable; +int* pentagonals; + +bool isPentagonal (int n) { + if (n < try && pentagonalTable[n] == -1) + return false; + if (n < try && pentagonalTable[n] == 1) + return true; + else { + int radicand = 24*n + 1; + int sqrtr = sqrt (radicand); + if (sqrtr * sqrtr == radicand && (sqrtr + 1) % 6 == 0) { + if (n < try) + pentagonalTable[n] = 1; + return true; + } + else { + if (n < try) + pentagonalTable[n] = -1; + return false; + } + } +} + +int pentagonalize (int n) { + if (n < try) { + if (pentagonals[n] == 0) { + pentagonals[n] = n * (3*n - 1) / 2; + if (pentagonals[n] < try) + pentagonalTable[pentagonals[n]] = 1; + } + return pentagonals[n]; + } + else + return n * (3*n - 1) / 2; +} + +int main () { + pentagonalTable = calloc (try, sizeof (int)); + pentagonals = calloc (try, sizeof (int)); + for (int j = 1; j < try; j++) { + for (int k = 1; k < j; k++) { + int pj = pentagonalize (j); + int pk = pentagonalize (k); + if (isPentagonal (pj + pk) && isPentagonal (pj - pk)) { + printf ("j: %d; k: %d; Pj: %d; Pk: %d; D: %d", j, k, pj, pk, pj - pk); + } + } + } +}