https://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=984&pid=1001
题意:
给出(n),求 (OR_{i=1}^n (n) (mod) (i))
题解:
当(i>n/2)时,(n) (mod) (i) (=) (n) (-) (i)
所以原式 = (1|2|3|4|5……(n-1)/2)
因为是连续自然数的或运算,找到最接近的(2^m-1)就是答案
#include<cstdio>
int main()
{
int T;
long long n,m,b;
scanf("%d",&T);
while(T--)
{
scanf("%lld",&n);
m=n+1>>1;
m--;
b=1;
while(m>=b) b<<=1;
printf("%lld
",b-1);
}
}