diff --git a/p25.c b/p25.c new file mode 100644 index 0000000..28848ce --- /dev/null +++ b/p25.c @@ -0,0 +1,24 @@ + +/* + * http://projecteuler.net + * + * Projecteuler - Problem 25 + * ----------------------- + * 2010-07-13 Henrik Hautakoski + * + * Alot of math, binet's formula + */ + +#include +#include + +#define LOG10PHI 0.20898764024997876221 /* log10((1+sqrt(5))/2) */ +#define MAGIC 0.65051499783199062676 /* |(log10(5) / 2) - 1| */ + +#define fibolen(n) ((int) ceil(((n) - MAGIC) / LOG10PHI)) + +int main() { + + printf("%i\n", fibolen(1000)); + return 0; +}