Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.76 KB | None | 0 0
  1.  
  2. import time
  3. t0 = time.time()
  4. # limite = int(input("Digite limite: "))
  5. limite=1000
  6. conjB=[]
  7. primos=[]
  8. conjA = [1, 5, 11, 13, 17, 19, 23, 25, 29, 31, 37, 41,43]
  9. conjTemp = conjA
  10. pa=[]
  11. sequencia=[];
  12.  
  13.  
  14. #sequencia=[4,6,2,4,2,4,2,4,2,6,4,2]
  15. # sequencia = diferenca dos elementos do conjunto A
  16. for n in range(0,len(conjA)-1):
  17.     sequencia.append(conjA[n+1]-conjA[n]);
  18.    
  19. k=0
  20.  
  21.  
  22. #arq = open("Primos.csv", "w")
  23.  
  24. while limite > conjTemp[-1]:
  25.           for a in conjTemp:
  26.               if a%5 != 0:
  27.                   conjB.append(a)      
  28.           conjTemp = [s+42 for s in conjTemp]
  29.           k=k+1
  30.  
  31. conjB.remove(1) #remove o numero 1 do inicio da lista
  32.  
  33. limite2 = conjB[-1]
  34.  
  35. print conjB
  36. print "k"
  37.  
  38. """ monta matriz de numeros nao primos , produz a matriz ampliada(conjB) multiplicado
  39. pela  sequencia mas a mesma e resultante da diferenca entre elementos de conjA
  40.  
  41. """
  42.  
  43. #Bruteforce para achar todos nao primeos , multiplicando-se pela sequencia s(n) = a(n-1) -a(n) :
  44. for i , r in enumerate(conjB):
  45.         x = r
  46.  
  47.         primosOld = []
  48.         while x <= limite2: # and x <= r**2:
  49.             for j in sequencia:
  50.                
  51.                 x +=   r * j # substituivel pelo conjunto -> xn=x(n-1) + x0*(delta primo) ; r =todos os indices do conjunto B, j sao todas as sequencias (filtro de nao primos)
  52.                 print x
  53.                 if x > r**2 or x>limite2:
  54.                     break
  55.                 else:
  56.                     # testa se e 0 ou 5:
  57.                     if x%5 !=0:
  58.                         # se x nao tem final 0 ou 5 x nao e primo.
  59.                        
  60.                         pa.append(x)
  61.                        
  62.                         print "app"
  63.                         print x
  64.                            
  65. conjB +=[2,3,5,7]
  66.  
  67.  
  68. # subtrai o pa da base:
  69. primos = ((sorted(set(conjB) - set(pa))))
  70.  
  71.  
  72. print "pa:"
  73. print pa
  74.  
  75. tf = time.time()
  76. print("Tempo executado: ",tf - t0)
  77. print(primos)
  78. print("Foi gerado lista em arquivo de texto no local do programa")
  79. print("\n")
  80.  
  81. print limite2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement