Crivo de Eratóstenes em Python
Eratóstenes viveu no século II a.C. Dentre os vários  trabalhos que fez, destacam-se: medição da circunferência da Terra (...
É definido assim: Escreva uma lista dos números entre 2 e o maior número que você quer testar a primalidade. Vamos chamá-l...
PYTHON:  max_n = 50   class  CrivoDeEratostenes:      def  __init__(self, max_n):          self.lista = range(2, max_n + 1...
Próximos SlideShares
Carregando em…5
×

Crivo de Eratóstenes - Por Rebeca Souza

2.709 visualizações

Publicada em

Programa em Python que determina os números primos dentro de limite.

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.709
No SlideShare
0
A partir de incorporações
0
Número de incorporações
140
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Crivo de Eratóstenes - Por Rebeca Souza

  1. 1. Crivo de Eratóstenes em Python
  2. 2. Eratóstenes viveu no século II a.C. Dentre os vários trabalhos que fez, destacam-se: medição da circunferência da Terra (com um erro de aproximadamente 0,2% apenas), e foi bibliotecário de Alexandria. O crivo de Eratóstenes é uma maneira prática de encontrar números primos, até um certo valor. De maneira muito simples, determina-se o número máximo até o qual deve-se verificar quais são os primos (digamos, n ). Em seguida, calculamos qual é o menor número inteiro menor ou igual a , digamos, m .
  3. 3. É definido assim: Escreva uma lista dos números entre 2 e o maior número que você quer testar a primalidade. Vamos chamá-la de lista1; Escreva o número 2, o primeiro número primo, em outra lista que conterá os números primos encontrados. Vamos chamá-la de lista2; Remova o 2 e todos os múltiplos dele da lista1; O primeiro número que sobrar da lista1 é primo. Escreva ele na lista2; Remova essa número e todos os seus múltiplos da lista1. A remoção pode começar da raiz quadrada do número, já que múltiplos menores foram removidos em passos anteriores; Repita os passos de 4 a 6 até não restarem mais números na lista1; A classe a seguir, escrita em Python, retorna uma lista com todos os números primos entre 2 e um número especificado ( max_n ).
  4. 4. PYTHON: max_n = 50   class CrivoDeEratostenes:     def __init__(self, max_n):         self.lista = range(2, max_n + 1)         self.primo_lista = [2]         self.crivo()             def crivo(self):         primo_n = self.lista[0]         max_n = self.lista[-1] + 1         self.lista.remove(primo_n)         for n in self.lista:             if n % primo_n == 0:                 self.lista.remove(n)         if len(self.lista)> 0:             self.primo_lista.append(self.lista[0])             return self.crivo()         else :             return self.primo_lista  print CrivoDeEratostenes(max_n).primo_lista   # [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

×