Problem 49
This commit is contained in:
parent
23a4e51a64
commit
f59e27514a
|
@ -0,0 +1,45 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <math.h>
|
||||
#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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue