/* It turns out that 12 cm is the smallest length of wire that can be bent to form an integer sided right angle triangle in exactly one way, * but there are many more examples. * * 12 cm: (3,4,5) * 24 cm: (6,8,10) * 30 cm: (5,12,13) * 36 cm: (9,12,15) * 40 cm: (8,15,17) * 48 cm: (12,16,20) * * In contrast, some lengths of wire, like 20 cm, cannot be bent to form an integer sided right angle triangle, and other lengths allow * more than one solution to be found; for example, using 120 cm it is possible to form exactly three different integer sided right angle triangles. * * 120 cm: (30,40,50), (20,48,52), (24,45,51) * * Given that L is the length of the wire, for how many values of L ≤ 1,500,000 can exactly one integer sided right angle triangle be formed?*/ #define _POSIX_C_SOURCE 199309L #include #include #include #include "projecteuler.h" #define N 1500000 int main(int argc, char **argv) { int i, a, b, c, tmpa, tmpb, tmpc, m, n, count = 0; int *l; double elapsed; struct timespec start, end; clock_gettime(CLOCK_MONOTONIC, &start); if((l = (int *)calloc(N + 1, sizeof(int))) == NULL) { fprintf(stderr, "Error while allocating memory\n"); return 1; } /* Generate all Pythagorean triplets using Euclid's algorithm: * For m>=2 and n