题解 P1045 【麦森数】

· · 题解

这么好的一个高精题为什么没人用python?

我来补一发2333

首先我们要知道python里的两个函数

pow(x,y[,z]) #幂函数,求x^y%zd的指  其中[]表示里面的参数可以有也可以没有
math.log10(x) #需要math库,表示log_10(x)的值,用来求位数

这样就可以做啦

剩下的注意事项写代码里面啦


import math#引入math库
a = int(input())   #以整数方式来读入
#lee=len(str(pow(2,a))) len()表示字符串长度,str()表示强制转换为字符串,这样求字符串长度会超时(70')
lee = math.log10(2)*a+1   #求长度
b=pow(2,a,100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)   #1后面499个0,注意不要使用1e499,会RE
b = b-1   #对输出结果减1
c ='%0500d' %b   #格式化数字补0,转为字符串
a1=int(50)
a2 =int(10)
print(int(lee))
k =int(0)
for j in range(a2):

    for i in range(a1):
        print(c[k],end='')   #对字符串切片输出
        k=k+1
    print(" ")   #换行

python大法好啊!