flydust 发表于 2018-9-28 22:46:13

这个阅读理解题有一点困惑

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
但是答案不是这个
是有什么步骤遗漏了?
有大神能解答一下嘛~

RIXO 发表于 2018-9-28 23:03:05

呃,我也觉得是求质数的啊,没毛病!
2 - 99999 的质数平方和

claws0n 发表于 2018-9-28 23:09:58

本帖最后由 claws0n 于 2018-9-28 23:11 编辑

{:10_247:} 双循环暴力法,你要解到何年何月?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))结果:24693298341834533

RIXO 发表于 2018-9-29 01:01:00

本帖最后由 RIXO 于 2018-9-29 01:03 编辑

claws0n 发表于 2018-9-28 23:09
双循环暴力法,你要解到何年何月?结果:

呃,为啥你跑出来了啊 ,开个根号这么牛逼的吗

flydust 发表于 2018-9-29 10:04:10

claws0n 发表于 2018-9-28 23:09
双循环暴力法,你要解到何年何月?结果:

谢谢大神回答~
对啦开心

claws0n 发表于 2018-9-29 12:56:05

RIXO 发表于 2018-9-29 01:01
呃,为啥你跑出来了啊 ,开个根号这么牛逼的吗

消失了两天呀
哇,弱爆了{:7_119:}
对不起大佬,还有更逊的方法
页: [1]
查看完整版本: 这个阅读理解题有一点困惑