Тема: Задача для опанування підпрограм №2
Доброго дня!
Є задача для опанування підпрограм:
Написав наступний код:
import random
import math
n = int(input('Введіть кількість елементів послідовності '))
max = int(input('Введіть максимальне натуральне число послідовності '))
X = random.sample(range(1, max), n)
print(X)
def issqr(val):
if int(val**0.5) == val**0.5:
return True
else:
return False
def islog(val):
if int(math.log(val,5)) == math.log(val,5):
return True
else:
return False
def isprime(val):
val = abs(int(val))
if val < 2:
return False
if val == 2:
return True
if not val & 1:
return False
for x in range(3, int(val**0.5)+1, 2):
if val % x == 0:
return False
return True
def check_value(i):
if issqr(i):
print(i,'є квадратом числа',int(i**0.5))
if islog(i):
print(i,'є ступенем числа 5: 5^',math.log(i,5))
if isprime(i):
print(i,'є простим числом')
for i in range(0,len(X)):
check_value(X[i])
Будь ласка, підкажіть як можна оптимізувати код, але залишити підпрограми.