Seguinte, to querendo desenvolver um programinha que ache números primos. Só que eu queria usar todo os cores disponiveis na minha máquina. A principio desenvolvi um codigo inicial, porém só consigo chegar até o número 10, depois disso nenhum outro primo é impresso. Se alguém souber o que tenho que modificar seria de grande ajuda. import math
import sys
from multiprocessing import Process
def verificaPrimos(numeroCandidato):
if numeroCandidato < 2:
return 0
else:
raiz = int(math.sqrt(numeroCandidato))
if raiz%2 == 0:
raiz = raiz - 1
#end_if
while raiz >= 3:
if numeroCandidato%raiz == 0:
return 0
#end_if
#end_while
#end_if_else
return 1
def multProcess(numInicial,numFinal,numCores):
passo = numCores*2
contNumeros = numInicial
contPrimos = 0
while contNumeros <= numFinal:
print "Verificando %s" %contNumeros
if verificaPrimos(contNumeros) == 1:
contNumeros = contNumeros + passo
contPrimos = contPrimos + 1
else:
contNumeros = contNumeros + passo
#end_if_else
#end_while
print "Encontrados: %s" %contPrimos
if __name__ == "__main__":
if len(sys.argv) <> 4:
print "Parametros Incorretos"
else:
if int(sys.argv[1]) % 2 == 0:
valorInicial = int(sys.argv[1])+1
else:
valorInicial = int(sys.argv[1])
#end_if_else
p1 = Process(target=multProcess, args=(valorInicial, int(sys.argv[2]), int(sys.argv[3])))
p1.start()
p2 = Process(target=multProcess, args=(valorInicial+2, int(sys.argv[2]), int(sys.argv[3])))
p2.start()
#end_if_else