思路:

令x为满足2<= a的最大的x。如果a的二进制表示中包含0,则将b构造为(2x+1 - 1) ^ a即可;否则gcd(a ^ b, a & b) = gcd(2x+1 - 1 - b, b) = gcd(2x+1 - 1, b),要令此式最大,b应为(2x+1 - 1)的最大非平凡因子。

实现:

 #include <bits/stdc++.h>
using namespace std; inline int max_fac(int x)
{
for (int i = ; i * i <= x; i++)
{
if (x % i == ) return x / i;
}
return ;
} int main()
{
int q, x;
set<int> st;
for (int i = ; i <= ; i++) st.insert(( << i) - );
while (cin >> q)
{
for (int i = ; i < q; i++)
{
cin >> x;
if (st.count(x))
{
cout << max_fac(x) << endl;
}
else
{
int tmp = , y = x;
while (y) { y >>= ; tmp++; }
cout << ( << tmp) - << endl;
}
}
}
return ;
}

最新文章

  1. 关于js的回调函数的一点看法
  2. golang开发环境(2016.9.16)
  3. 【BZOJ-3306】树 线段树 + DFS序
  4. 如何从innodb的数据字典里恢复表结构
  5. opencv 61篇
  6. 算法库:OpenCV3编译配置
  7. Native App执行JS
  8. JAVA WEB中如何让数据库连接对开发人员完全透明?
  9. MariaDB10.2.X-新特性1-支持分析函数
  10. UVALive 6665 Dragonas Cruller
  11. 一个人的旅行(Dijkstra算法)
  12. Light OJ 1008
  13. Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition
  14. Sklearn中二分类问题的交叉熵计算
  15. Manacher (最长回文序列)
  16. typecho开启pjax,ajax,无刷新
  17. WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX
  18. MySQL的各种join
  19. C# Timer自带定时器
  20. ant design pro (十三)advanced 错误处理

热门文章

  1. Subset Sums
  2. LuoguP4861 按钮
  3. Oracle数据库当前连接数、最大连接数的查询与设置
  4. PHP/Javascript 数组定义 及JSON中的使用 ---OK
  5. 是否要从单片机转为嵌入式Linux?
  6. 配置android-studio应用的快捷键
  7. 1.7 hive基本操作
  8. Visual Studio 2010下WorldWind编译问题集合
  9. POJ3696【欧拉函数+欧拉定理】
  10. lightoj 1099【dijkstra/BFS】