Alternating prime and square
Question:-
Solution:-
Write a Python function squareprime(l) that takes a nonempty list of integers and returns True if the elements of lalternate between perfect squares and prime numbers, and returns False otherwise. 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
Solution:-
import math def prime_check(n): flag = 0 for i in range(2,n-1): if n % i == 0: flag = 1 if flag == 0: return True else: return False def is_square(n): if math.sqrt(n) % 1 == 0: return True else: return False def primesquare(l): flag = 0 if len(l) == 1: if is_square(l[0]) or prime_check(l[0]): return True else: return False if is_square(l[0]): for i in range(1,len(l)): if i % 2 == 0: if not is_square(l[i]): flag = 1 break elif i %2 != 0: if not prime_check(l[i]): flag = 1 break if flag == 0: return True else: return False elif prime_check(l[0]): for i in range(1,len(l)): if i % 2 == 0: if not prime_check(l[i]): flag = 1 break elif i % 2 != 0: if not is_square(l[i]): flag = 1 break if flag == 0: return True else: return False else: return False
Comments
Post a Comment