U126487 二进制
题目背景
### 前置知识:
- **二进制**:我们常说的1、2、3、4、5、6、7、8、9、10......是十进制是数字,即满十进一。而在计算机中往往运用的是二进制数字,即满二进一,如3在二进制中表示为11,5在二进制中表示位101。“int”是32位的整数,即存长度为32的一个整数。3在int中会被储存为000.....011(11前面还有30个0)。
- **异或(^)**:异或是编程中常用的一种运算符号,a^b的结果表明了a和b在二进制下每一个对应位置的数字是否相同,相同为0,不同为1。例如5^3=6,因为5是101,3是011(当然,如果在int的32位下他们前面都还有很多个0),101和011中左边第一位和第二位不同,所以答案是110,即十进制下的数字6。
题目描述
给你一个十进制下的数字 _m_ ,那么一定存在至少一对十进制的32位整数下的数字 _x_ 和 _y_ 使得 _x^y=m_ 成立。你需要找出在 _x_ 与 _y_ 的和最大的情况下,在十进制下有多少组32位非负整数 _x_ 和 _y_ 使 _x^y=m_ 成立。
**简单地说,在使 _x、y_ 的和最大的情况下的和你能找到多少组 _x_ 和 _y_ 使 _x^y=m_ 成立。**
**请注意:x=1、y=2和x=2、y=1视为两对不同的解**
输入格式
第一行输入一个整数 _t_ ,表示共有 _t_ 组测试 ( _1≤t≤100000_ )。
以下 _t_ 行,每行一个数字 _m_ ( _0≤m≤1000000000_ )。
输出格式
共 _t_ 行,每行打印一个十进制整数表示你的答案。
说明/提示
1表示有一组输入。
当 _m_ =2时,使 _x^y=m_ 成立的 _x、y_ 最大和为 _8589934586_ 。在最大和的条件下共有两组 _x、y_ 使得 _x^y=m_ 成立。
第一组:_x=4294967295,y=4294967291;_
第二组:_x=4294967291,y=4294967295。_