#6617. 最大的二次幂因子

最大的二次幂因子

题目 1:最大的二次幂因子

题目描述

对于任意正整数 x,定义函数 F(x) 如下:

  • F(x)2 的整数次幂;
  • F(x) 能够整除 x
  • 在满足上述条件的所有整数中,F(x) 的值最大。

例如:

F(12)=4

因为:

12 = 3 × 4

其中:

4 = 2²

是能够整除 12 的最大的 2 的整数次幂。

再例如:

F(40)=8

因为:

40 = 5 × 8

而:

16

不能整除 40,因此:

F(40)=8

请你根据给定的整数 x,计算 F(x) 的值。


输入格式

输入一个正整数:

x

输出格式

输出一个整数,表示 F(x) 的值。


数据范围

1 ≤ x ≤ 10^9

样例输入 1

12

样例输出 1

4

样例输入 2

40

样例输出 2

8

样例解释

对于样例 1:

12 = 3 × 4

其中 4=2²,是能够整除 12 的最大的 2 的整数次幂,因此答案为:

4

对于样例 2:

40 = 5 × 8

其中 8=2³,且 16 不能整除 40,因此答案为:

8

数据范围

对于所有测试数据,保证:

1 ≤ x ≤ 10^9

提示

如果采用不断判断是否能被 2 整除的方法,也能够求出答案。

不过,是否存在一种只需一次位运算即可得到结果的方法?