首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中素数的最大序列

数组中素数的最大序列
EN

Stack Overflow用户
提问于 2017-10-16 18:38:03
回答 1查看 255关注 0票数 1

我对python还不熟悉,我正试图从数组中找出最大的素数序列。我编写了一个函数来计算一个数字是否是素数,使用这个函数,我试图在数组中找到最大的素数序列。

例如:

array1 =1,2,5,4,2,2,3

对于这个数组,最大的素数序列是2,2,3。

代码语言:javascript
复制
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(不是素数)时会中断,而且我不知道如何从那个点再遍历数组。我不确定我是否够清楚..。有什么建议我该怎么做?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-16 18:43:39

这样就行了。

代码语言:javascript
复制
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)

几件事。要查找最大序列,需要将当前最大序列的值存储在另一个变量中,并检查当前序列len是否大于最大序列lenelse部分被用作当前素数序列具有结束的标记,如果您现在拥有的是更大的序列,则在这里检查

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46776982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档