Can the greatest common divisor and bitwise operations have anything in common? It is time to answer this question.

Suppose you are given a positive integer aa. You want to choose some integer bb from 11to a−1a−1 inclusive in such a way that the greatest common divisor (GCD) of integers a⊕ba⊕b and a&ba&b is as large as possible. In other words, you'd like to compute the following function:

f(a)=max0<b<agcd(a⊕b,a&b).f(a)=max0<b<agcd(a⊕b,a&b).

Here ⊕⊕ denotes the bitwise XOR operation, and && denotes the bitwise AND operation.

The greatest common divisor of two integers xx and yy is the largest integer gg such that both xx and yy are divided by gg without remainder.

You are given qq integers a1,a2,…,aqa1,a2,…,aq. For each of these integers compute the largest possible value of the greatest common divisor (when bb is chosen optimally).

Input

The first line contains an integer qq (1≤q≤1031≤q≤103) — the number of integers you need to compute the answer for.

After that qq integers are given, one per line: a1,a2,…,aqa1,a2,…,aq (2≤ai≤225−12≤ai≤225−1) — the integers you need to compute the answer for.

Output

For each integer, print the answer in the same order as the integers are given in input.

Example

Input

3
2
3
5

Output

3
1
7

Note

For the first integer the optimal choice is b=1, then a⊕b=3,a&b=0, and the greatest common divisor of 33 and 00 is 33.

For the second integer one optimal choice isb=2, then a⊕b=1, a&b=2, and the greatest common divisor of 1and 2 is 1.

For the third integer the optimal choice is b=2, then a⊕b=7, a&b=0a&b=0, and the greatest common divisor of 7 and 0 is 7.

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
#include<set>
#include<map> using namespace std; int main()
{
int n;
cin>>n;
long long x;
for(int t=0;t<n;t++)
{
scanf("%lld",&x);
long long sum=1;
if(x==3)
{
printf("1\n");
}
else if(x==7)
{
printf("1\n");
}
else if(x==15)
{
printf("5\n");
}
else if(x==31)
{
printf("1\n");
}
else if(x==63)
{
printf("21\n");
}
else if(x==127)
{
printf("1\n");
}
else if(x==255)
{
printf("85\n");
}
else if(x==511)
{
printf("73\n");
}
else if(x==1023)
{
printf("341\n");
}
else if(x==2047)
{
printf("89\n");
}
else if(x==4095)
{
printf("1365\n");
}
else if(x==8191)
{
printf("1\n");
}
else if(x==16383)
{
printf("5461\n");
}
else if(x==32767)
{
printf("4681\n");
}
else if(x==65535)
{
printf("21845\n");
}
else if(x==131071)
{
printf("1\n");
}
else if(x==262143)
{
printf("87381\n");
}
else if(x==524287)
{
printf("1\n");
}
else if(x==1048575)
{
printf("349525\n");
}
else if(x==2097151)
{
printf("299593\n");
}
else if(x==4194303)
{
printf("1398101\n");
}
else if(x==8388607)
{
printf("178481\n");
}
else if(x==16777215)
{
printf("5592405\n");
}
else if(x==33554431)
{
printf("1082401\n");
}
else
{
for(int t=1;t<=26;t++)
{
sum*=2;
if(sum<=x&&sum*2>x)
{
sum*=2;
break;
}
}
cout<<sum-1<<endl;
}
} return 0;
}

CodeForces - 1110C-Meaningless Operation(打表找规律)的更多相关文章

  1. codeforces Gym 100418D BOPC 打表找规律,求逆元

    BOPCTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action?c ...

  2. Tetrahedron(Codeforces Round #113 (Div. 2) + 打表找规律 + dp计数)

    题目链接: https://codeforces.com/contest/166/problem/E 题目: 题意: 给你一个三菱锥,初始时你在D点,然后你每次可以往相邻的顶点移动,问你第n步回到D点 ...

  3. Codeforces 193E - Fibonacci Number(打表找规律+乱搞)

    Codeforces 题目传送门 & 洛谷题目传送门 蠢蠢的我竟然第一眼想套通项公式?然鹅显然 \(5\) 在 \(\bmod 10^{13}\) 意义下并没有二次剩余--我真是活回去了... ...

  4. codeforces#1090 D. New Year and the Permutation Concatenation(打表找规律)

    题意:给出一个n,生成n的所有全排列,将他们按顺序前后拼接在一起组成一个新的序列,问有多少个长度为n的连续的子序列和为(n+1)*n/2 题解:由于只有一个输入,第一感觉就是打表找规律,虽然表打出来了 ...

  5. Codeforces Round #493 (Div. 2)D. Roman Digits 第一道打表找规律题目

    D. Roman Digits time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  6. Codeforces Beta Round #24 D. Broken robot (打表找规律)

    题目链接: 点击我打开链接 题目大意: 给你 \(n,j\),再给出 \(m[0]\) 的坐标和\(a[0]-a[n-1]\) 的坐标. 让你输出 \(m[j]\) 的坐标,其中 \(m[i]\) 和 ...

  7. hdu 3032 Nim or not Nim? (SG函数博弈+打表找规律)

    Nim or not Nim? Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

  8. HDU 5753 Permutation Bo (推导 or 打表找规律)

    Permutation Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5753 Description There are two sequen ...

  9. HDU 4861 Couple doubi (数论 or 打表找规律)

    Couple doubi 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/D Description DouBiXp has a ...

  10. HDU2149-Good Luck in CET-4 Everybody!(博弈,打表找规律)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

随机推荐

  1. mysql中如何不重复插入满足某些条件的重复的记录的问题

    最近在项目中遇到了这样的一个问题“: 在mysql数据库中需要每次插入的时候不能插入三个字段都相同的记录.在这里使用到了 insert into if not exists  和insert igno ...

  2. IFC文件解析

    什么是IFC? EXPRESS语言与IFC体系 一.IFC 1.IFC简介 IFC是一个数据交换标准, 用于不同系统交换和共享数据.当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的 ...

  3. 关于sleep的理解

    unix是按时间片轮转调度, windows是抢占式调度 以吃蛋糕为例子,10个人吃蛋糕,如果是unix下, 假设开始时,每个人都处于就绪状态,那么操作系统调度大家排好队,按顺序吃,每个人吃1分钟, ...

  4. hadoop2.2分布式环境搭建

    hadoop2.2的分布式环境需要配置的参数更多.但是需要安装的系统软件和单节点环境是一样的. 运行hadoop在非安全环境 hadoop的配置文件有两类: 1:只读的默认配置文件: core-def ...

  5. 应用Bundle捆绑压缩技术

    从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了[App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleConf ...

  6. XML在C#与Unity3D中的实战运用

    一.xml文件是什么? XML是指可扩展标记语言,英文:Extensible Markup Language的缩写. 二.xml文件有什么用? 用来传输和存储数据,比如网络通信,本地配置文件等. 三. ...

  7. 浅谈Spring的两种配置容器

    浅谈Spring的两种配置容器 原文:https://www.jb51.net/article/126295.htm 更新时间:2017年10月20日 08:44:41   作者:黄小鱼ZZZ     ...

  8. iOS系统各个版本的占比查询

    目的:为了向大多数看齐,我们要实时了解应用系统的使用占比 1.苹果官网查询各个系统的占比: Apple 2.各种设备各种系统的占比 第三方

  9. UIButton的几种触发方式

    1.说明 说明:由于是在"iOS 模拟器"中测试的,所以不能用手指,只能用鼠标. 1)UIControlEventTouchDown 指鼠标左键按下(注:只是"按下&qu ...

  10. (获取qq群成员信息,并下载头像,每个群保存一个文件夹)

    # 1.获取到自己qq里面所有的群,并且保存每个群里面的群成员信息到mongodb里面# 下载每个群的群成员的头像# 1.抓包,抓到获取自己所有qq群的接口 requests模块 https://qu ...