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