Задача к ЕГЭ по информатике на тему «Особые числа (простые, фибоначи, факториал, палиндромы)» №2

Найти на промежутке [157314,853412]  числа, которые являются квадратами простых чисел. В ответе запишите количество таких чисел и их сумму через пробел.

Решение 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
Оцените статью
Я решу все!