41 lines
696 B
C
41 lines
696 B
C
#include <stdint.h>
|
|
#include <gmp.h>
|
|
|
|
uint64_t fibonacci( void ) {
|
|
const int n = 25000;
|
|
uint64_t a = 0, b = 1, c;
|
|
|
|
for (int i = 2; i <= n; i++) {
|
|
c = a + b;
|
|
a = b;
|
|
b = c;
|
|
}
|
|
|
|
return b;
|
|
}
|
|
|
|
|
|
char* fibonacci_gmp() {
|
|
const int n = 25000;
|
|
static char result[10000]; // Assicurati che sia abbastanza grande per contenere il numero
|
|
mpz_t a, b, c;
|
|
|
|
mpz_init_set_ui(a, 0);
|
|
mpz_init_set_ui(b, 1);
|
|
mpz_init(c);
|
|
|
|
for (int i = 2; i <= n; i++) {
|
|
mpz_add(c, a, b);
|
|
mpz_set(a, b);
|
|
mpz_set(b, c);
|
|
}
|
|
|
|
mpz_get_str(result, 10, b);
|
|
|
|
mpz_clear(a);
|
|
mpz_clear(b);
|
|
mpz_clear(c);
|
|
|
|
return result;
|
|
}
|
|
|