Sou novo na programação.
Recentemente tentei fazer esse programa, com o seguinte código:
divisor = 1
divisores = 0
for num in range(1, 20, 1):
if divisores == 2:
print(num)
if num % divisor == 0:
divisores += 1
else: divisor += 1
continue
Não consegui fazer ele funcionar e nem entender o problema. Alguma solução?
Obrigado!
Um número primo é todo inteiro positivo que possui apenas um divisor inteiro além de um, ou seja, possui somente dois divisores, um e ele mesmo. Sendo assim, para o número 11, você precisa verificar se ele é divisível por 2, 3, 4, 5, 6, 7, 8, 9 e 10. Se for divisível por um desses do intervalo, 11 não é primo, caso contrário, 11 é primo. Você já tem a garantia que 11 é divisível por 1 e por 11. A ideia é a mesma para qualquer inteiro positivo. Há como acelerar o processo, mas isso é outra história…
Para resolver o seu problema, para cada número n
, conte a quantidade de divisores no intervalo de 1 a n
. Um número é divisível por outro se o resto da divisão inteira for zero. Se para o número n
seu contador, ao varrer todo o intervalo, estiver valendo 2, n
é primo, caso contrário (n
diferente de 2), n
não é primo. É claro, você pode diminuir esse intervalo, removendo o 1 e n
, pois você que esses valores são divisores de n
…
1 curtida
Se fizer uma busca na internet, vai ver que o que não falta é algoritmo para saber se um número é primo
Em Python, por exemplo, tem um algoritmo um pouquinho melhor nesse tópico: Números Primos