Olá galera,
Tenho um trabalhinho da faculdade e estou tendo algumas dificuldades nele. O programa vai pegar um número e ele vai verificar se ele é a soma de 4 números primos consecutivos (todos eles ao quadrado).
Ex: 2020 = 17 ^ 2 + 19 ^ 2 + 23 ^ 2 + 29 ^ 2 ou 87 = 2 ^ 2 + 3 ^ 2 + 5 ^ 2 + 7 ^ 2
Qualquer número (exemplo: 100) que não dê pra fazer isso, o programa vai imprimir falso. Por enquanto, meu código está assim.
n = int(input("n: "))
num = 2
cont = 0
for div in range(1, num + 1):
if num % div == 0:
cont = cont + 1
num = num + 1
if cont == 2:
nprimo = True
else:
nprimo = False
p = 0
while p < n and nprimo:
n = (num ** 2) + ((num + 1) ** 2) + ((num + 2) ** 2) + ((num + 3) ** 2)
Acho que a parte de verificar se o número é primo está correta mas estou com dificuldades de pegar o próximo número primo. No caso do 87, eu precisaria pegar o 2, 3, 5 e 7, não estou conseguindo fazer isso. Como é trabalho de faculdade tem algumas restrições (professor não passou logo não posso usar). Eu poderia resolver de forma mais fácil se usasse listas e criasse funções diferentes mas infelizmente não posso fazer isso, vai ter que ser na base do while mesmo. Alguém pode me dar alguma ideia?