为啥只有30??
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1000003;
ll n;
ll fpow(ll a,ll b){
ll ans=1;
for(;b;b>>=1){
if(b&1){
ans=ans*a%N;
}
a=a*a%N;
}
return ans;
}
ll lowbit(ll x){
return x&(-x);
}
ll f(ll x){
if(lowbit(x)==x){
return fpow(3,log(x)/log(2))%N;
}
return f(fpow(2,log2(x)))%N+2*f(x-fpow(2,log2(x))%N);
}
int main(){
scanf("%lld",&n);
printf("%lld",((1+n)*n/2-f(n)%N)%N);
}