+ 1
How to write a python program on prime squares without if and else?
Write a Python function primesquare(l) that takes a nonempty list of integers and returns True if the elements of l alternate between perfect squares and prime numbers, and returns Falseotherwise. Note that the alternating sequence of squares and primes may begin with a square or with a prime. Here are some examples to show how your function should work. >>> primesquare([4]) True >>> primesquare([4,5,16,101,64]) True >>> primesquare([5,16,101,36,27]) False
7 ответов
+ 2
Just alternating? No preference whether one should start first?
+ 2
Roshini Manoharan Please show an attempt of your own first. We can't do your homework for you 
https://www.sololearn.com/discuss/1316935/?ref=app
+ 2
https://code.sololearn.com/cF0VL22dIv3R/?ref=app
+ 1
The alternating sequence of squares and primes may begin with a square or with a prime.
+ 1
from math import sqrt
def square(n):
    if(sqrt(n) % 1 == 0):
        return True
    else:
        return False
def prime(n):
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            return False
    return True
def primesquare(l):
    s=l[0]
    if(prime(s)):
        for i in range(0,len(l),2):
            if(prime(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(prime(l[i])==False):
                return False
        return True
    else:
        return False
Anna, this is my attempt. But I wanna know other methods of solving the problem for the same output
0
You can change if...else section with while one. For instance 
if x > 5:
    print("greater")
else:
    print("ok")
is equal to
while x > 5:
    print("greater")
    break
else:
    print("ok")
😊



