#include #include #define limit 100 unsigned int start = 2; unsigned int factors[limit-1]; int main(void) { int pos, k=1, sum; mpz_t numerator, denominator; for(pos=0; pos=0; pos--) { mpz_addmul_ui(numerator, denominator, factors[pos]); // numerator += denominator * factors[pos] mpz_swap(numerator, denominator); } mpz_addmul_ui(numerator, denominator, start); // numerator += denominator * start sum = 0; while(mpz_cmp_ui(numerator, 0) > 0) sum += mpz_fdiv_q_ui(numerator, numerator, 10); printf("%li\n", sum); return 0; }