| 广东工业大学新生赛(初赛) |
|---|
| Закончено |
这是一道交互题
给定一个正整数 n(2 ≤ n ≤ {2}60 - 1),输出它最大的质因子。
这个问题太难了,所以你有 64 次尝试的机会,对于每次尝试:
。 在这里,
代表整数 x 和 y 的按位异或运算。
显然,当交互器输出 0 时,说明你输出了正确答案,此时你应停止尝试。
一行一个整数 n,保证 2 ≤ n ≤ {2}60 - 1 。
程序交互应从读取整数 n 开始。
在进行尝试时,请输出一行一个整数 m(0 ≤ m ≤ {2}63 - 1)。
然后,你需要读入交互器的输出的一个整数,表示 d 的二进制表示中数位 1 的个数。
注意:接收到交互器的输出 0 或尝试次数达到限制后,你的程序应立即终止。
此外,在每次输出完毕后,你都需要立即 刷新缓冲区 !你可以使用如下语句来刷新缓冲区:
对于 C++ 语言,在输出换行时如果你使用 std::endl 而不是 `\n' ,也可以自动刷新缓冲区。
21 0
7
1234567654321 5 0
1145 4649
显然,你只需要编写一个高效率的质因数分解算法即可通过此题。
| Название |
|---|


