diff --git a/p12.c b/p12.c new file mode 100644 index 0000000..0b1b33a --- /dev/null +++ b/p12.c @@ -0,0 +1,40 @@ + +/* + * http://projecteuler.net + * + * Projecteuler - Problem 12 + * ------------------------ + * 2010-06-18 Henrik Hautakoski + */ + +#include "lib/prime.h" +#include + +int ndiv(int n) { + + int i, exp, ndiv = 1; + + for(i=2; i <= n; i++) { + + if (!is_prime(i)) + continue; + + for(exp = 0; n % i == 0; n /= i, exp++); + + if (exp > 0) + ndiv *= exp+1; + } + + return ndiv; +} + +int main() { + + int i, num = 1; + + for(i=2; ndiv(num) <= 500; num += i++); + + printf("%i\n", num); + + return 0; +}