Numeros Circulares
Enviado por Andres Campos • 22 de Mayo de 2017 • Trabajo • 504 Palabras (3 Páginas) • 194 Visitas
# -*- coding: utf-8-spanish -*-
# Primos Circulares
# Realizado por: DJ Tacua
import math
import time
def NumerosPrimos(max):
'''
Retorna todos numeros primo entre 2 y un numero maximo
Parametros:
max --> valor maximo a calcular los numeros primos
lista --> Lista que almacena todos los numeros primos
'''
lista = []
lista.append(2)
for x in range(3, max, 2):
if Primo(x):
lista.append(x)
return lista
def Primo(numero):
'''
Retorna True si un numero es primo y False en caso contrario
Parametros:
numero --> recibe como parametro para verificar si es un primo
verifica --> recibe el valor de verdero si es primo y falso
'''
verifica = True
for i in range(3, int(math.sqrt(numero)) + 1, 2):
if numero % i == 0:
verifica = False
break
return verifica
def NumerosCirculares(numero, numerosPrimos):
'''
Retorna si un numero es circular y si no lo es
'''
lista = list(str(numero))
verifica = True
for y in range(1, len(lista)):
primero = lista[0]
for x in range(0, len(lista) - 1):
lista[x] = lista[x + 1]
lista[len(lista) - 1] = primero
if ConvertirCadena(lista) not in numerosPrimos:
verifica = False
break
return verifica
def ConvertirCadena(lista):
'''
Convierte una lista de caracteres a un numero entero
Parametros:
numero --> acumula todos los digitos de la lista
'''
numero = ''
for x in range(0, len(lista)):
numero += lista[x]
return int(numero)
def Principal():
numerosPrimos = NumerosPrimos(1000000)
contadorCirculares = 0
for x in range(0, len(numerosPrimos)):
if NumerosCirculares(numerosPrimos[x], numerosPrimos):
print(numerosPrimos[x])
contadorCirculares += 1
print('Existen: ', contadorCirculares, 'numeros Circulares')
tiempo = time.clock()
Principal()
print('Tiempo transcurrido ', time.clock() - tiempo)
...