Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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程序没有输出_Python - Fatal编程技术网

Python程序没有输出

Python程序没有输出,python,Python,问题在于: 素数3、7、109和673是非常显著的。通过取任意两个素数并以任意顺序连接它们,结果将 永远是最好的。例如,取7和109,7109和1097都是素数。这四个素数之和792表示 具有此性质的四个素数集的最小和。 求一组五个素数的最小和,其中任意两个素数连接起来生成另一个素数 下面是在结果列表中没有给出任何输出的程序。请帮忙 LIMIT = 20000 prima = [] #empty list def Bsearch(lsta,low,high,search): #Bina

问题在于:

素数3、7、109和673是非常显著的。通过取任意两个素数并以任意顺序连接它们,结果将 永远是最好的。例如,取7和109,7109和1097都是素数。这四个素数之和792表示 具有此性质的四个素数集的最小和。 求一组五个素数的最小和,其中任意两个素数连接起来生成另一个素数

下面是在结果列表中没有给出任何输出的程序。请帮忙

LIMIT = 20000

prima = []  #empty list

def Bsearch(lsta,low,high,search):   #Binary search function to search a prime number
    if low>high:
        return 0
    else:
        mid = int((low+high)/2)

        if search<lsta[mid]:
            Bsearch(lsta,low,mid-1,search)
        if search>lsta[mid]:
            Bsearch(lsta,mid+1,high,search)
        if search==lsta[mid]:
            return 1
    return 0

def primes(LIMIT):   #sieve to create prime numbers upto LIMIT
    dic = {}    #empty dictionary
    for i in range(2,LIMIT):
        dic[i] = 1
    for i in range(2,LIMIT):
        for j in range(i,LIMIT):
            if i*j>LIMIT:
                break
            dic[i*j] = 0
    for i in range(2,LIMIT):
        if dic[i]==1:
            prima.append(i)

primes(LIMIT)

result = []

for i in range(0,len(prima)):
    print(str((i/len(prima)*100))+"% list passed")

    tempa = []
    tempa.append(prima[i])
    count = 0
    for j in range(i+1,len(prima)):
        c1 = int(str(prima[j])+str(prima[i]))   #first combination
        c2 = int(str(prima[i])+str(prima[j]))   #second combination
        if(Bsearch(prima,0,len(prima)-1,c1) and Bsearch(prima,0,len(prima)-1,c2)):
            print("small success : "+str(count))
            tempa.append(prima[j])
            count +=1
        if(count==4):
            result.append(tempa)
            print("success!")
            break

for item in result:
    print(item)
LIMIT=20000
prima=[]空列表
def B搜索(lsta、低、高、搜索):#用于搜索素数的二进制搜索函数
如果低>高:
返回0
其他:
中=整数((低+高)/2)
如果searchlsta[mid]:
B搜索(lsta、中+1、高、搜索)
如果搜索==lsta[mid]:
返回1
返回0
定义素数(极限):#筛选以创建达到极限的素数
dic={}#空字典
对于范围(2,极限)内的i:
dic[i]=1
对于范围(2,极限)内的i:
对于范围内的j(i,极限):
如果i*j>限制:
打破
dic[i*j]=0
对于范围(2,极限)内的i:
如果dic[i]==1:
主附加(一)
素数(极限)
结果=[]
对于范围(0,len(prima))中的i:
打印(str((i/len(prima)*100))+%list passed)
坦帕=[]
tempa.append(prima[i])
计数=0
对于范围(i+1,len(prima))内的j:
c1=int(str(prima[j])+str(prima[i])#第一个组合
c2=int(str(prima[i])+str(prima[j])#第二组合
如果(b搜索(prima,0,len(prima)-1,c1)和b搜索(prima,0,len(prima)-1,c2)):
打印(“小成功:+str(计数))
tempa.append(prima[j])
计数+=1
如果(计数=4):
result.append(tempa)
打印(“成功!”)
打破
对于结果中的项目:
打印(项目)

由于搜索是递归的,因此需要返回搜索结果

def Bsearch(lsta,low,high,search):   #Binary search function to search a prime number
  retval = 0
  if low>high:
    retval = 0
  else:
    mid = int((low+high)/2)

    if search == lsta[mid]:
        # Make this test first as allows it to exit at once with success
        retval = 1
    elif search<lsta[mid]:
        retval = Bsearch(lsta,low,mid-1,search)
    else:     # search>lsta[mid] Since only 3 choices elif not needed
        retval = Bsearch(lsta,mid+1,high,search)
  return retval
def Bsearch(lsta、low、high、search):#用于搜索素数的二进制搜索函数
retval=0
如果低>高:
retval=0
其他:
中=整数((低+高)/2)
如果搜索==lsta[mid]:
#首先进行此测试,因为它可以立即成功退出
retval=1
elif searchlsta[mid]因为只有3个选项elif不需要
retval=b搜索(lsta,中+1,高,搜索)
返回返回
限值=20000
prima=[]空列表
def B搜索(lsta、低、高、搜索):#用于搜索素数的二进制搜索函数
如果低>高:
返回0
其他:
中=整数((低+高)/2)
如果searchlsta[mid]:
B搜索(lsta、中+1、高、搜索)
如果搜索==lsta[mid]:
返回1
返回0
定义素数(极限):#筛选以创建达到极限的素数
dic={}#空字典
对于范围(2,极限)内的i:
dic[i]=1
对于范围(2,极限)内的i:
对于范围内的j(i,极限):
如果i*j>限制:
打破
dic[i*j]=0
对于范围(2,极限)内的i:
如果dic[i]==1:
主附加(一)
素数(极限)
结果=[]
限值=20000
prima=[]空列表
def B搜索(lsta、低、高、搜索):#用于搜索素数的二进制搜索函数
如果低>高:
返回0
其他:
中=整数((低+高)/2)
如果searchlsta[mid]:
B搜索(lsta、中+1、高、搜索)
如果搜索==lsta[mid]:
返回1
返回0
定义素数(极限):#筛选以创建达到极限的素数
dic={}#空字典
对于范围(2,极限)内的i:
dic[i]=1
对于范围(2,极限)内的i:
对于范围内的j(i,极限):
如果i*j>限制:
打破
dic[i*j]=0
对于范围(2,极限)内的i:
如果dic[i]==1:
主附加(一)
素数(极限)
结果=[]

如果您希望它显示某些内容,您可能希望在代码中的某个地方打印(某些内容)。@WayneWerner打印在第55行的最后一条语句中,您根本没有得到任何输出?奇怪的是,我得到了
索引器:列表索引超出范围
。这是您最新的代码吗?@Kevin OOps抱歉,如果忘记了一个修订,请修改第45行的B搜索,因为B搜索(prima,0,len(prima)-1,c1)-1应该在两个B搜索语句中都存在。请用这些更改更新您的帖子。
LIMIT = 20000

prima = []  #empty list

def Bsearch(lsta,low,high,search):   #Binary search function to search a prime number
    if low>high:
        return 0
    else:
        mid = int((low+high)/2)

        if search<lsta[mid]:
            Bsearch(lsta,low,mid-1,search)
        if search>lsta[mid]:
            Bsearch(lsta,mid+1,high,search)
        if search==lsta[mid]:
            return 1
    return 0

def primes(LIMIT):   #sieve to create prime numbers upto LIMIT
    dic = {}    #empty dictionary
    for i in range(2,LIMIT):
        dic[i] = 1
    for i in range(2,LIMIT):
        for j in range(i,LIMIT):
            if i*j>LIMIT:
                break
            dic[i*j] = 0
    for i in range(2,LIMIT):
        if dic[i]==1:
            prima.append(i)

primes(LIMIT)

result = []
LIMIT = 20000

prima = []  #empty list

def Bsearch(lsta,low,high,search):   #Binary search function to search a prime number
    if low>high:
        return 0
    else:
        mid = int((low+high)/2)

        if search<lsta[mid]:
            Bsearch(lsta,low,mid-1,search)
        if search>lsta[mid]:
            Bsearch(lsta,mid+1,high,search)
        if search==lsta[mid]:
            return 1
    return 0

def primes(LIMIT):   #sieve to create prime numbers upto LIMIT
    dic = {}    #empty dictionary
    for i in range(2,LIMIT):
        dic[i] = 1
    for i in range(2,LIMIT):
        for j in range(i,LIMIT):
            if i*j>LIMIT:
                break
            dic[i*j] = 0
    for i in range(2,LIMIT):
        if dic[i]==1:
            prima.append(i)

primes(LIMIT)

result = []