|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def g(x):
if x <= 1:
return False
cnt = 0
for i in range(1, x + 1):
if x % i == 0:
cnt += 1
if cnt > 2:
return False
return True
ans = 0
for i in range(1000000):
if g(i):
ans += i * i
print("Flag is flag{%d}" % (ans))
一道ctf阅读理解题
这道题按我的理解是把100万以内的质数求平方和,然后用matlab求了答案,是24693298341813192
但是答案不是这个
是有什么步骤遗漏了?
有大神能解答一下嘛~
本帖最后由 claws0n 于 2018-9-28 23:11 编辑
 双循环暴力法,你要解到何年何月? - import math as m
- def g(x):
- for i in range(2,int(m.sqrt(x))+1):
- if x % i == 0:
- return False
- return True
- ans = 0
- for i in range(2,1000000):
- if g(i):
- ans += i * i
- print("100万以内的质数求平方和 = %d" % (ans))
复制代码结果:
|
|