Python - Numeros primos y no primos en diferentes archivos

   
Vista:

Numeros primos y no primos en diferentes archivos

Publicado por sabeque (6 intervenciones) el 29/06/2013 04:14:21
hola a todos. Soy principiante en python y quiero hacer un programita que busque en una lista numeros primos y no primos y los guarde en archivos de texto diferentes.
Hasta ahora escribi esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# -*- coding: utf-8 -*-
 
class buscadordeconvinaciones:
import itertools
# ahora la idea sera generar convinaciones de una lista
noprimos = 0
primos = 0
# parametro general en el que se debera buscar
lgral = [0,1,2,3,4]
archivo=open('/home/datosprimos2.txt','w')
archivo2=open('/home/datosnoprimos2.txt','w')
archivo.close()
archivo2.close()
for g in itertools.combinations(lgral, 4):
for i in g:
if i == 0:
noprimos = noprimos + 1
elif i == 1:
noprimos += 1
elif i == 2:
primos += 1
elif i == 3:
primos += 1
elif i == 4:
noprimos += 1
if primos < 2:
archivo=open('/home/datosprimos2.txt','a')
archivo.write ("\n")
archivo.write (str(g))
archivo.close()
 
else:
archivo2=open('/home/datosnoprimos2.txt','a')
archivo2.write ("\n")
archivo2.write (str(g))
archivo2.close()
print g


pero no esta funcionando bien. Alguien puede ayudarme? es mas, la lista es 0 a 10. puse corta para dar la idea nomas. Ante todo gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Numeros primos y no primos en diferentes archivos

Publicado por xve (1232 intervenciones) el 29/06/2013 10:45:55
Hola Sabeque, haber que te parece este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
def es_primo(numero):
    """
    Funcion que determina si un numero es primo
    Tiene que recibir el numero entero
    """
    # Para que un numero sea primo, unicamente tiene que dividirse dos veces:
    #   1 - divisible entre 1
    #   2 - divisible entre el mismo
    # En este bucle, empezamos por el dos hasta un numero anterior a el, por lo
    # que si en el bucle, alguna vez se divide el numero, quiere decir que no es
    # primo
    for i in range(2,numero):
        if (numero%i)==0:
            # es divisible
            return False
    return True
 
# abrimos los archivos
fprimo=file("primo","w");
fnoprimo=file("noprimo","w");
# definimos la lista
lista=[1,85,65,32,9,11,36,25,29,34,7,14]
 
for numero in lista:
    if es_primo(numero):
        fprimo.write("\n%s" % numero)
    else:
        fnoprimo.write("\n%s" % numero)
 
# cerramos los archivos
fprimo.close()
fnoprimo.close()

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar