#include<stdio.h> unsigned long pgcd(unsigned long a, unsigned long b) { if (b == 0) return a; return pgcd(b, a % b); } unsigned long fibonacci(unsigned long l) { unsigned long moinsUn, moinsDeux; if (l == 0 || l == 1) return l; moinsUn = 1; moinsDeux = 0; while( l > 1) { moinsUn ^= moinsDeux; moinsDeux ^= moinsUn; moinsUn ^= moinsDeux; moinsUn += moinsDeux; l--; } return moinsUn; } int main() { unsigned long f1, f2, i; f2 = fibonacci(0); for(i = 0 ; i <= 40 ; i++) { f1 = f2; f2 = fibonacci(i+1); printf("pgcd(%lu, %lu) = %lu\n", f1, f2, pgcd(f1, f2)); } return 0; }