Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 3.x 编写Python函数squareprime(l)_Python 3.x - Fatal编程技术网

Python 3.x 编写Python函数squareprime(l)

Python 3.x 编写Python函数squareprime(l),python-3.x,Python 3.x,编写一个Python函数squareprimel,它接受一个非空的整数列表,如果l的元素在完全平方和素数之间交替,则返回True,否则返回False。注意,正方形和素数的交替序列可以从正方形或素数开始 下面是一些例子来说明函数应该如何工作 >>> primesquare([4]) True >>> primesquare([4,5,16,101,64]) True >>> primesquare([5,16,101,36,27]) Fal

编写一个Python函数squareprimel,它接受一个非空的整数列表,如果l的元素在完全平方和素数之间交替,则返回True,否则返回False。注意,正方形和素数的交替序列可以从正方形或素数开始

下面是一些例子来说明函数应该如何工作

>>> primesquare([4])
True

>>> primesquare([4,5,16,101,64])
True

>>> primesquare([5,16,101,36,27])
False
函数prime\u checker检查一个数字是否为prime。 函数的作用是检查一个数字是否完美。 如果索引0处的数字是平方,则链类似于[平方,素数,平方…] 否则序列就像[素数,平方,素数,平方..] 如果输入序列不是这两个序列中的任何一个,则它不是有效序列,并且将返回False

import math

def prime_checker(num): 
   flag = True
   if num == 2:
       return True
   elif num < 2:
       return False
   else:
       for i in range(2, int(num/2)):
           if num % i  == 0:
               flag = False
               break
   return flag

def is_square(integer):
    if integer == 0:
        return false
    root = math.sqrt(integer)
    if int(root + 0.5) ** 2 == integer: 
        return True
    return False`

def primesquare(list_nums):
   if len(list_nums) == 0:
       return False
   if len(list_nums) == 1:
       if (is_square(list_nums[0]) or prime_checker(list_nums[0])):
           return True
       else:
           return False
   else:
       flag = True
       if is_square(list_nums[0]):
           check_for = 'prime'
       elif prime_checker(list_nums[0]):
           check_for = 'square'
       else:
           return False
       for i in range(1,len(list_nums)):
           if (check_for == 'prime' and prime_checker(list_nums[i])):
               check_for = 'square'
           elif (check_for == 'square' and is_square(list_nums[i])):
               check_for = 'prime'
           else:
               flag = False
               break     
       if flag:
           return True
       else:
           return False
更新: 由于第0个索引处的元素已被检查,因此我们不再关心该数字。因此,如果第0个元素是素数,那么序列将是[素数,平方,素数,平方,…]。 如果它是一个完美的正方形,那么序列将是[正方形,素数,正方形,素数…]

如果两者都不是,则它不是有效序列,因此返回false

现在,如果第一个数字是两个中的任何一个,并且列表的长度大于1,那么我们将迭代其余的元素,并检查它们是否与我们期望的相似,但更改变量的check_值

如果check_for的值是prime,并且我们遇到的值也是prime,那么我们知道序列的下一个数字应该是一个平方数,序列才是有效序列。遇到平方数时也会发生类似情况。

请查看此链接,了解如何提出您的问题。。。
from math import sqrt
def square(n):
    if(sqrt(n) % 1 == 0):
        return True
    else:
        return False
def isprime(n):
    if (n == 1):
        return(False)
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            return False
    return True
def squareprime(l):
    s=l[0]
    if(isprime(s)):
        for i in range(0,len(l),2):
            if(isprime(l[i])==False):
                return False
        for i in range(1,len(l),2):
            if(square(l[i])==False):
                return False
        return True
    elif(square(s)):
        for i in range(0,len(l),2):
            if(square(l[i])==False):
                return False
        for i in range(1,len(l),2):
            if(isprime(l[i])==False):
                return False
        return True
    else:
        return False
from math import sqrt
def square(n):
    if(sqrt(n) % 1 == 0):
        return True
    else:
        return False
def isprime(n):
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            return False
    return True
def primesquare(list_nums):
   if len(list_nums) == 0:
       return False
   if len(list_nums) == 1:
       if (square(list_nums[0]) or isprime(list_nums[0])):
           return True
       else:
           return False
   else:
       flag = True
       if square(list_nums[0]):
           check_for = 'prime'
       elif isprime(list_nums[0]):
           check_for = 'square'
       else:
           return False
       for i in range(1,len(list_nums)):
           if (check_for == 'prime' and isprime(list_nums[i])):
               check_for = 'square'
           elif (check_for == 'square' and square(list_nums[i])):
               check_for = 'prime'
           else:
               flag = False
               break     
       if flag:
           return True
       else:
           return False
from math import sqrt 
def isprime(n):
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            return False
    return True

def primesquare(l):
    flag=0
    if len(l)==1:
        n=l[0]
        if(sqrt(n)%1==0):
            return True
    else:
        for i in range(0,len(l)):
            if(sqrt(l[i])%1==0):
                if(i==0):
                    if(isprime(l[i+1])==True):
                        flag=1
                    else:
                        if(isprime(l[i-1])==True):
                            if(isprime[i+1]==True):
                                flag=1
                            else:
                                flag=0
                        else:
                            flag=0

    if(flag==0):
        return False
    else:
        return True