数组中的最大素数序列

2024-10-03 21:31:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我正在尝试从数组中找出素数的最大序列。 我写了一个函数来计算一个数是素数还是非素数,并用它来寻找一个数组中素数的最大序列。你知道吗

例如:

数组1=[1,2,5,4,2,2,3,4]

对于这个数组,素数的最大序列是2,2,3。 为了解决这个问题,我尝试使用以下方法:

def primeSequence(s):
    l=[]
    k=[]
    j=0
    for i in range(1,len(s)+1):

        if isPrime(s[i]):  
            l.append(s[i])
        else:
            break
    print(l)    
    k.append(l)
    print(k);

基本上,我检查了数组,看这个数是不是素数。如果是,我将它存储在一个数组中。然后我将它存储在另一个数组中,最后计划遍历k个数组,找出哪个数组最大。你知道吗

问题是for循环在找到4(不是素数)时中断,我不知道如何从该点再次遍历数组。。 我不确定我是否足够清楚。。有什么建议吗?谢谢。你知道吗


Tags: 方法函数inforlenifdefrange
1条回答
网友
1楼 · 发布于 2024-10-03 21:31:47

这样就可以了。你知道吗

def primeSequence(s):
    l=[]
    k=[]
    j=0
    max_l = []                       #store the max sequence at present

    for i in range(len(s)):

        if isPrime(s[i]):  
            l.append(s[i])
        else:
            if len(l)>len(max_l):     #is longest primeSequence
              max_l = l               #store that
            l=[]                      #for starting new primeSequence series

    if len(l)>len(max_l):             #handles case where the sequence includes the last element
          max_l = l

    print(max_l)

没什么。要查找max序列,需要将当前max序列的值存储在另一个变量中,并检查当前序列len是否大于max序列lenelse部分用作当前素数序列已结束的标记,这是检查当前素数序列是否为较大序列的地方。你知道吗

相关问题 更多 >