2067 - 函数

MiaoWu定义了几种函数:

        C(n,k) 表示从n个物品中选出k个物品的方案数,用数学表达式就是 C(n,k)=(n!)/((k!)*(n-k)!)

        G(S)   表示集合S中所有元素的最大公约数,如果S={x1,x2,x3,...,xn},那么数学表达式就是 G(S)=gcd(x1,x2,x3,...,xn)

        F(n)   是新定义的一种能够表示喵星数学的函数,用数学表达式表示就是 F(n)= G({C(2*n,1),C(2*n,3),C(2*n,5),...,C(2*n,2*n-1)}) ; 

例如:F(6)=G(C(12,1),C(12,3),C(12,5),C(12,7),C(12,9),C(12,11))=G(12,220,792,792,220,12)=4

现在MiaoWu希望你能够帮助他快速求出这种函数的值。


题目输入

每行输入一个n,输入到文件结束。(2<=n<=10^9)

题目输出

每行输出M(n)的值。

输入/输出样例

题目输入

6
5
4

题目输出

4
2
8

C++解答

#include<stdio.h>
#include<math.h>

long long t,p,n,ans;
int main()
{
    //freopen("1.txt","r",stdin);
    //freopen("2.txt","w",stdout);
    while(~scanf("%lld",&n))
    {
        p=1;
        while(n%2==0)
            p++,n/=2;
        printf("%.0lf\n",pow(2,p));
    }
}

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题