Encontrando o enésimo número primo usando Python
Quando executo esse código, mesmo contando até o 10º número primo (em vez de 1000), recebo uma saída inclinada / jacked - todos os títulos "não primos" para minha variável is_composite, meu test_num está me fornecendo números primos e compostos, e meu prime_count está desativado
Algumas das respostas que os desenvolvedores compartilharam usam funções e a importação matemática - isso é algo que ainda não abordamos. Não estou tentando obter a resposta mais eficiente; Estou apenas tentando escrever código python viável para entender os conceitos básicos de loop.
# test a prime by diving number by previous sequence of number(s) (% == 0). Do this by
# counting up from 1 all the way to 1000.
test_num = 2 #these are the numbers that are being tested for primality
is_composite = 'not prime' # will be counted by prime_count
prime_count = 0 #count the number of primes
while (prime_count<10): #counts number primes and make sures that loop stops after the 1000th prime (here: I am just running it to the tenth for quick testing)
test_num = test_num + 1 # starts with two, tested for primality and counted if so
x = test_num - 1 #denominator for prime equation
while (x>2):
if test_num%(x) == 0:
is_composite = 'not prime'
else:
prime_count = prime_count + 1
x = x - 1
print is_composite
print test_num
print prime_count