Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嘿,有人能帮我找出解决Euler问题50(连续素数和)的代码有什么问题吗?它只适用于100以下的情况_Python_Optimization - Fatal编程技术网

Python 嘿,有人能帮我找出解决Euler问题50(连续素数和)的代码有什么问题吗?它只适用于100以下的情况

Python 嘿,有人能帮我找出解决Euler问题50(连续素数和)的代码有什么问题吗?它只适用于100以下的情况,python,optimization,Python,Optimization,我有一个问题,我的代码成功地生成了前100个素数,但之后就不起作用了。我真的不确定问题出在哪里 a=0 def isprimen: 素数=真 对于范围2内的i,整数**0.5+1: 如果n%i==0: 素数=假 打破 返回素数 def irpbx: javab=True 对于范围2中的i,intx**0.5+1: 如果x%i==0: javab=False 打破 返回javab 对于范围为2,1*10**6的d: 如有争议: 打印的d是,d a+=d 如果irpba: 如果a存在逻辑错误。 您要

我有一个问题,我的代码成功地生成了前100个素数,但之后就不起作用了。我真的不确定问题出在哪里

a=0 def isprimen: 素数=真 对于范围2内的i,整数**0.5+1: 如果n%i==0: 素数=假 打破 返回素数 def irpbx: javab=True 对于范围2中的i,intx**0.5+1: 如果x%i==0: javab=False 打破 返回javab 对于范围为2,1*10**6的d: 如有争议: 打印的d是,d a+=d 如果irpba: 如果a存在逻辑错误。 您要打印从1到N的所有素数之和。很好。 当然,如果N是10^6,那么从1到N的所有素数之和都大于10^6。 那么你的最后一个条件是:

if a<1*10**6:
    print(a)
永远不会是真的

这里有一个解决方案:

a=0

N=10^6

def isprime(n):
    prime=True
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            prime=False
            break
    return prime


for d in range(2,N):
    if isprime(d):
        print("D is ",d)
        a+=d

if(N<=10^6)
  print(a)

你好,欢迎来到SO!请您澄清您的代码的哪一部分导致了问题以及这些问题是什么?谢谢你好,谢谢。它适用于100以下的素数,但idk为什么不适用于100万以下的素数&idk如何调试或找出我的错误:/@ArgonLinux尝试编辑您的问题以显示这一点。这会让人们更容易地帮助他们!你可以在这里看到如何用最少且可重复的例子提问好的问题:请把你得到的错误放在你的帖子里。
a=0

N=10^6

def isprime(n):
    prime=True
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            prime=False
            break
    return prime


for d in range(2,N):
    if isprime(d):
        print("D is ",d)
        a+=d

if(N<=10^6)
  print(a)
37550402023