回复 5楼 好烦、
											不谢,我帮你写一个完整的吧

程序代码:
#include <stdio.h>
unsigned long long fibonacci( unsigned n )
{
    // a *= b
    #define MUL(a,b) do {\
        unsigned long long t00 = (a##00*b##00+a##01*b##10)%2000000003;\
        unsigned long long t01 = (a##00*b##01+a##01*b##11)%2000000003;\
        unsigned long long t10 = (a##10*b##00+a##11*b##10)%2000000003;\
        unsigned long long t11 = (a##10*b##01+a##11*b##11)%2000000003;\
        a##00=t00, a##01=t01, a##10=t10, a##11=t11;\
    } while(0)
    unsigned long long r00=1,r01=0,r10=0,r11=1;
    for( unsigned long long v00=0,v01=1,v10=1,v11=1; n!=0; n/=2 )
    {
        if( n%2 == 1 )
            MUL(r,v); // r*=v
        MUL(v,v); // v*=v;
    }
    return r01%2000000003;
    #undef MUL
}
int main( void )
{
    unsigned n;
    scanf( "%u", &n );
    printf( "%llu\n", fibonacci(n) );
}