没错,P开头语言党也求调!

P1045 [NOIP2003 普及组] 麦森数

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])

|