Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Codigo para encontrar todos los números Polydivisibles
- #Por Pablo Bilbao
- import math
- def polydivisible():
- j=1
- a=0 #Introduciendo los digitos iniciales.
- b=0
- c=0
- d=0
- e=0
- f=0
- g=0
- h=0
- x=0 #Una variable para que los while loops este constantemente ejecutandose.
- while x == (0): #Loop primario que se encarga de iniciar el Loop secundario despues de cambiar de numero.
- while x == (0): #Loop secundario
- number = j*math.pow(10,8)+a*math.pow(10,7)+b*math.pow(10,6)+c*math.pow(10,5)+d*math.pow(10,4)+e*math.pow(10,3)+f*math.pow(10,2)+g*10+h
- #Multiplicando cada digito por la potencia de diez adecuada se consigue ocupe su lugar en el número.
- if(math.fmod(j,1)==0): #Empieza a comprobar la divisibilidad observando a ver si hay resto.
- if(math.fmod((j*10+a),2)==0): #Dígito a dígito.
- if(math.fmod((j*math.pow(10,2)+a*10+b),3)==0):
- if(math.fmod((j*math.pow(10,3)+a*math.pow(10,2)+b*10+c),4)==0):
- if(math.fmod((j*math.pow(10,4)+a*math.pow(10,3)+b*math.pow(10,2)+c*10+d),5)==0):
- if(math.fmod((j*math.pow(10,5)+a*math.pow(10,4)+b*math.pow(10,3)+c*math.pow(10,3)+d*10+e),6)==0):
- if(math.fmod((j*math.pow(10,6)+a*math.pow(10,5)+b*math.pow(10,4)+c*math.pow(10,3)+d*math.pow(10,2)+e*10+f),7)==0):
- if(math.fmod((j*math.pow(10,7)+a*math.pow(10,6)+b*math.pow(10,5)+c*math.pow(10,4)+d*math.pow(10,3)+e*math.pow(10,2)+f*10+g),8)==0):
- if(math.fmod(number,9)==0): #Así hasta el numero final sea divisible entre nueve
- print str(number) #Si se han cumplido todos los requisitos de divisibilidad,
- break #el número se muestra en el terminal y sale del Loop Secundario.
- else: #Para que pueda empezar el proceso de suma.
- break
- else:
- break #si el resto no es cero entonces se sale del Loop secundario
- else: #y se ejecuta la suma
- break
- else:
- break
- else:
- break
- else:
- break
- else:
- break
- else:
- break
- h+=1 #Despues de comprobar cada número se le suma uno para empezar con el siguiente.
- if (h==10): #Cuando el primer digito llega a diez,
- g+=1 #el segundo crece en una unidad.
- h=0 #Y el primero vuelve a cero.
- if(g==10): #Así con cada dígíto.
- f+=1
- g=0
- if(f==10): #Cuando no hace falta sumar más el Loop principal vuelve a empezar
- d+=1 #y inicia el Loop secundario que es el sistema de comprobación de
- f=0 #multiplos.
- if(d==10):
- e+=1
- d=0
- if(e==10):
- c+=1 #Esto último pasa a lo largo de toda esta cadena de Ifs.
- e=0
- if(c==10):
- b+=1
- c=0
- if(b==10):
- a+=1
- b=0
- if(a==10):
- j+=1
- a=0
- if(j==10): #Si el último digito llega a Diez entonces se para el programa
- print "se acabó, nó puedo comprobar números más grandes de 999.999.999"
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement