输入描述:
小乐乐最喜欢玩数字了。
小乐乐最近迷上了2这个整数,他觉得2的幂是一种非常可爱的数字。
小乐乐想知道整数x的最大的 2的幂 (2^y)的因子。
y为整数。
输入描述:
输入整数x。(1<=x<=1e18)
输出描述:
输出整数x的最大(2^y)的因子。
示例1
输入
7
输出
1
说明
2^0
示例2
输入
8
输出
8
示例3
输入
6
输出
2
链接:https://ac.nowcoder.com/acm/contest/302/J
来源:牛客网
这道题,读懂题意是关键,想知道整数x的最大的2的幂的因子。
这个因子是最大的2的幂里面的,那么对于所有的奇数,它们符合本题的因子就只能是1.
如果说是偶数,比如说8,8是2^3,最后在输出的时候也是8,2^3
6,6能够整除2,2就是2^1,
那么就可以写出来代码
while(x%2!=1&&x!=0)
{
x/=2;
n++;
}
printf("%.f\n",pow(2,n));
除多少次,就平方多少次。
AC代码如下:
#include<stdio.h>
#include<math.h>
int main(void)
{
long long x,n=0;
scanf("%lld",&x);
while(x%2!=1&&x!=0)
{
x/=2;
n++;
}
printf("%.f\n",pow(2,n));
return 0;
}