Найти на промежутке числа, которые являются квадратами простых чисел. В ответе запишите количество таких чисел и их сумму через пробел.
Решение 1
def prime(n):# функция для проверки, что число - простое
if n == 1: return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
counter, summ = 0, 0
for i in range(157314, 853412 + 1):
if (int(i ** 0.5) == i ** 0.5) and prime(i ** 0.5): # проверка, что у числа етсь корень и при этом он является простым числом
counter += 1
summ += i
print(counter, summ)
Решение 2
def prime(n): # функция для проверки, что число - простое
if n == 1: return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
counter, summ = 0, 0
for i in range(int(157314**0.5), int(853412**0.5)+1): # перебираем в пределах значений корней наших чисел
if (157314 <= i*i <= 853412) and prime(i): # проверка, что число в квадрате будет в пределах перебора и при этом является простым числом
counter+= 1
summ += i**2
print(counter, summ)
Ответ: 80 35716880