您的位置:首页 > 其它

codeforces 711E 数学

2016-09-18 11:51 357 查看
计算1-(2^n-1)*...*(2^n-(k-1))/(2^n(k-1)).

先算公约数,可以看出公约数只能是2的n次幂,求每个分子和2的n次幂的最大公约数,因为gcd(a,b)=gcd(b-a,a),所以直接求2^n和(k-1)!的公约数,然后同除就行。这里有勒让德定理:在正数n!的素因子标准分解式中,素数p的指数记作

,则

。然后就能算出有多少2的约数,一除就行。

最后如果是大于最多的天数,就直接输出1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: