小乐乐算数字

输入描述:

小乐乐最喜欢玩数字了。

小乐乐最近迷上了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;
}

猜你喜欢

转载自blog.csdn.net/zbq_tt5/article/details/84727401