Silversnowflake @ 2024-07-26 17:10:04
import math
def calculate_mersenne_prime(P):
# 计算位数
digits = math.floor(P * math.log10(2)) + 1
# 计算2^P - 1的最后500位
mod = 10 ** 500
last_500_digits = (pow(2, P, mod) - 1) % mod
return digits, last_500_digits
P = int(input())
digits, last_500_digits = calculate_mersenne_prime(P)
print(digits)
print(f"{last_500_digits:0>500}") # 用0填充至500位
全WA,本地能过。
by JXR_Kalcium @ 2024-07-26 17:17:41
@Silversnowflake 建议用洛谷自带ide调
by Silversnowflake @ 2024-07-26 17:32:25
@JXR_Kalcium 用了洛谷ide了,大概看了一下,应该是和数据一 一样的。不知道是哪的问题
by cgxd @ 2024-08-01 08:18:43
50位换行考虑了吗?
by Montpelier @ 2024-08-31 22:26:31
虽然我不懂python,但是我可以告诉你一个笑话。
之前我们一位同学自己搭了个vscode,结果搭错了,但是关键是它还能输出结果,错误的结果。于是他调了三个小时过不了样例,怀着愤怒的心情交了代码,发现洛谷上全部AC。
所以他写了个帖子《本地WA,洛谷AC???》
后来被管理删了()
by wanghaoyu120717 @ 2024-10-12 08:45:19
import math
def calculate_mersenne_prime(P):
# 计算位数
digits = math.floor(P * math.log10(2)) + 1
# 计算2^P - 1的最后500位
mod = 10 ** 500
last_500_digits = (pow(2, P, mod) - 1) % mod
return digits, last_500_digits
P = int(input())
digits, last_500_digits = calculate_mersenne_prime(P)
print(digits)
ss=f"{last_500_digits:0>500}"
for i in range(1,11):
print(ss[(i-1)*50:i*50])