From 990fbe1cca6fc31fdb6639e55bb335ea9df0d9f4 Mon Sep 17 00:00:00 2001 From: Jonathan Chan Date: Mon, 5 Dec 2016 19:04:17 -0800 Subject: [PATCH] Problem 37 --- 37 | Bin 0 -> 9744 bytes 37.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 37 create mode 100644 37.c diff --git a/37 b/37 new file mode 100755 index 0000000000000000000000000000000000000000..d68fea77ed0ce4411b8d3024817a08212a512ed1 GIT binary patch literal 9744 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 Nt}b9VI|`lt{|;oKk9+_C literal 0 HcmV?d00001 diff --git a/37.c b/37.c new file mode 100644 index 0000000..76f42fa --- /dev/null +++ b/37.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include +#include "primes.h" + +bool* primesTable; + +bool isLeftTrunc (int n) { + int digits = floor (log10 (n)) + 1; + for (int i = 1; i <= digits; i++) { + if (!primesTable[n % (int) pow (10, i)]) + return false; + } + return true; +} + +bool isRightTrunc (int n) { + while (n > 0) { + if (!primesTable[n]) + return false; + n /= 10; + } + return true; +} + +int main () { + int* primes; + int numOfPrimes = listOfPrimes (1000000, &primes, &primesTable); + // unfortunately I couldn't find a deterministic way to find + // the upper-bound of all truncatable primes... 1 mil will do + + int sum = 0; + for (int i = 0; i < numOfPrimes; i++) { + if (isLeftTrunc (primes[i]) && + isRightTrunc (primes[i]) && + primes[i] > 10) { + printf ("%d\n", primes[i]); + sum += primes[i]; + } + } + printf ("sum: %d\n", sum); +}