diff --git a/49 b/49 new file mode 100755 index 0000000..c6107eb Binary files /dev/null and b/49 differ diff --git a/49.c b/49.c new file mode 100644 index 0000000..85124b9 --- /dev/null +++ b/49.c @@ -0,0 +1,45 @@ +#include +#include +#include +#include +#include "primes.h" + +bool arePermutations (int a, int b, int c) { + int aDigOcc[10] = {0}; + int bDigOcc[10] = {0}; + int cDigOcc[10] = {0}; + + for (int i = 0; i < 4; i++) { + aDigOcc[a % 10]++; + a /= 10; + + bDigOcc[b % 10]++; + b /= 10; + + cDigOcc[c % 10]++; + c /= 10; + } + + for (int i = 0; i < 10; i++) { + if (aDigOcc[i] != bDigOcc[i] || bDigOcc[i] != cDigOcc[i] || cDigOcc[i] != aDigOcc[i]) + return false; + } + return true; +} + +int main () { + long* primes; + bool* primesTable; + listOfPrimes (10000, &primes, &primesTable); + + int sum = 0; + for (int r = 1; r < 4499; r++) { + for (int n = 1000; n < 9999 - 2 * r; n++) { + int a = n; + int b = n + r; + int c = b + r; + if (primesTable[a] && primesTable[b] && primesTable[c] && arePermutations (a, b, c)) + printf ("%d%d%d\n", a, b, c); + } + } +}