jknet 1 Denunciar post Postado Outubro 26, 2011 alguem sabe como concluir este algoritmo com numeros primos , segue o algoritmo: leia 100 numeros e imprima somente os primos. resolucao: variaveis: num = 0 for i in range(0,100): num = inta9input("digite um numero") if (numero%==0): print ("este nemero é primo"): else: print("este numero nao é primo") pq nao ta simprimindo os primos. desde ja agaradeco. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 26, 2011 O código saiu todo "deformado". Mas já vendo o operador de módulo, posso deduzir que você usou divisão por 2 como critério p/ primalidade. Se for isso, está errado. Procure na internet a definição de número primo. Compartilhar este post Link para o post Compartilhar em outros sites
jknet 1 Denunciar post Postado Outubro 27, 2011 _Isis_ , ja procutri na internet é dificil encontrar exemplos com n primos , encontrei uma regra q um amigo passou mas nao entendi, pq ele é mais avancado em python , ele ja conhece varias sintaxe , pq tem pessoas q faz um programa c sintaxe diferente ,ai fica mais dificil de enteder, mas vou procurar neteder as sintaxe d python, você conhece outra maneira masi simples. desde agradeco. segue o modelo q ele encontrou: Numeros primos: def isprime(num,primes): for divi in primes: if num%divi == 0: return False return True num,counter,primes = 2,1,[] while counter <= M: if isprime(num,primes) == True: counter += 1 print(num) primes.append(num) num += 1 Compartilhar este post Link para o post Compartilhar em outros sites
Daniel1 1 Denunciar post Postado Dezembro 9, 2011 Programa para ver numeros primos, você digita o limite de números que quer ver. No seu caso você quer que ele mostre de 100 números quais são primos: import math def fill_list(lim=10): """Fill a list with values from 2 to lim. Requires the limit. """ list = [] for index in range(2, lim + 1): list.append(index) return list def remove_zeros(list): """Remove zeros from the list passed. Requires the list of integers. """ list2 = [] for index in range(len(list)): if list[index]: list2.append(list[index]) return list2 def sieve_of_eratosthenes(lim=10): """Calculate the Sieve of Eratosthenes. Returns a list with zeros in place of number which aren't prime. Only the prime numbers are different of zero. """ # Create the list of values and calculate the square # +root of the limit. sieve = fill_list(lim) limit = int(math.sqrt(lim)) # The first 'for' structure iterates until de square root # +of the limit.The second 'for' structure iterates until # +the limit. for index1 in range(0, limit): # Jump zeros. if not sieve[index1]: continue for index2 in range(index1 + 1, lim - 1): if sieve[index2] and (not (sieve[index2] % sieve[index1])): sieve[index2] = 0 return remove_zeros(sieve) # Main print sieve_of_eratosthenes(int(raw_input("Entre com o limite \ de numeros que quer calcular: "))) Exemplo de utilização do código: Use o pyScripter: Cole o código acima pressione crtl+f9 ira aparecer um input pedindo para você digitar o limite de números primos que quer ver (no seu caso você digita 100) clique em ok na tela abaixo irá aparecer >>> *** Remote Interpreter Reinitialized *** >>> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] >>> Espero ajudar Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Dezembro 28, 2011 Complementando a resposta acima: import math # Leitura dos números nprimos = input("Quantos números devem ser lidos? ") lista_numeros = [] lista_primos = [] for i in range(nprimos): lista_numeros.append(int(input())) # Remove números inválidos (negativos, 1 e zeros) lista_numeros = filter(lambda n: n > 1, lista_numeros) # Remove as repetições lista_numeros = list(set(lista_numeros)) # Filtragem dos primos # Remove os inteiros N divisíveis por qualquer número entre 2 e sqrt(N). for numero in lista_numeros: divisores = range(2, int(math.floor(math.sqrt(numero))) + 1) restos = map(lambda div: numero % div, divisores) if all(restos): #Se todos os restos forem maiores que 0, temos um número primo. lista_primos.append(numero) if lista_primos: print "Números primos:" print lista_primos else: print "Nenhum número primo lido." Compartilhar este post Link para o post Compartilhar em outros sites