Python - Teoría de Números

#30 ejemplos de funciones sobre teoría de números en Python:[br][br]#1. Verificar si un número es par:[br]def es_par(numero):[br] return numero % 2 == 0[br][br]#2. Verificar si un número es impar:[br]def es_impar(numero):[br] return numero % 2 != 0[br][br]#3. Verificar si un número es primo:[br]def es_primo(numero):[br] if numero < 2:[br] return False[br] for i in range(2, int(numero ** 0.5) + 1):[br] if numero % i == 0:[br] return False[br] return True[br][br]#4. Obtener los factores de un número:[br]def obtener_factores(numero):[br] factores = [][br] for i in range(1, numero + 1):[br] if numero % i == 0:[br] factores.append(i)[br] return factores[br][br]#5. Obtener la suma de los factores de un número:[br]def obtener_suma_factores(numero):[br] suma = 0[br] for i in range(1, numero + 1):[br] if numero % i == 0:[br] suma += i[br] return suma[br][br]#6. Obtener la cantidad de factores de un número:[br]def obtener_cantidad_factores(numero):[br] cantidad = 0[br] for i in range(1, numero + 1):[br] if numero % i == 0:[br] cantidad += 1[br] return cantidad[br][br]#7. Obtener el máximo común divisor de dos números:[br]def obtener_mcd(numero1, numero2):[br] while numero2 != 0:[br] resto = numero1 % numero2[br] numero1 = numero2[br] numero2 = resto[br] return numero1[br][br][br]#8. Obtener el mínimo común múltiplo de dos números:[br]def obtener_mcm(numero1, numero2):[br] mcd = obtener_mcd(numero1, numero2)[br] return (numero1 * numero2) // mcd[br][br]#9. Obtener la suma de los dígitos de un número:[br]def obtener_suma_digitos(numero):[br] suma = 0[br] while numero != 0:[br] suma += numero % 10[br] numero //= 10[br] return suma[br][br]#10. Verificar si un número es perfecto:[br]def es_perfecto(numero):[br] suma = 0[br] for i in range(1, numero):[br] if numero % i == 0:[br] suma += i[br] return suma == numero[br][br]#11. Verificar si un número es abundante:[br]def es_abundante(numero):[br] suma = 0[br] for i in range(1, numero):[br] if numero % i == 0:[br] suma += i[br] return suma > numero[br][br]#12. Verificar si un número es deficiente:[br]def es_deficiente(numero):[br] suma = 0[br] for i in range(1, numero):[br] if numero % i == 0:[br] suma += i[br] return suma < numero[br][br]#13. Obtener la raíz cuadrada de un número:[br]def obtener_raiz_cuadrada(numero):[br] return numero ** 0.5[br][br]#14. Obtener la potencia de un número:[br]def obtener_potencia(base, exponente):[br] return base ** exponente[br][br]#15. Obtener el factorial de un número:[br]def obtener_factorial(numero):[br] factorial = 1[br] for i in range(1, numero + 1):[br] factorial *= i[br] return factorial[br][br]#16. Obtener el número de Fibonacci de un índice:[br]def obtener_fibonacci(indice):[br] if indice == 0:[br] return 0[br] elif indice == 1:[br] return 1[br] else:[br] return obtener_fibonacci(indice - 1) + obtener_fibonacci(indice - 2)[br][br]#17. Verificar si un número es un número de Fibonacci:[br]def es_fibonacci(numero):[br] if numero == 0 or numero == 1:[br] return True[br] a, b = 0, 1[br] while b < numero:[br] a, b = b, a + b[br] return b == numero[br][br]#18. Obtener los números primos hasta un límite:[br]def obtener_primos(limite):[br] primos = [][br] for numero in range(2, limite + 1):[br] es_primo = True[br] for i in range(2, int(numero ** 0.5) + 1):[br] if numero % i == 0:[br] es_primo = False[br] break[br] if es_primo:[br] primos.append(numero)[br] return primos[br][br]#19. Obtener la descomposición en factores primos de un número:[br]def obtener_factores_primos(numero):[br] factores_primos = [][br] divisor = 2[br] while divisor <= numero:[br] if numero % divisor == 0:[br] factores_primos.append(divisor)[br] numero //= divisor[br] else:[br] divisor += 1[br] return factores_primos[br][br]#20. Verificar si dos números son amigos:[br]def son_amigos(numero1, numero2):[br] suma_divisores1 = sum(obtener_factores(numero1)) - numero1[br] suma_divisores2 = sum(obtener_factores(numero2)) - numero2[br] return suma_divisores1 == numero2 and suma_divisores2 == numero1[br][br]#21. Obtener los números amigos hasta un límite:[br]def obtener_amigos(limite):[br] amigos = [][br] for numero1 in range(2, limite + 1):[br] numero2 = sum(obtener_factores(numero1)) - numero1[br] if numero1 < numero2 and sum(obtener_factores(numero2)) - numero2 == numero1:[br] amigos.append((numero1, numero2))[br] return amigos[br][br]#22. Verificar si un número es un número perfecto de Mersenne:[br]def es_mersenne(numero):[br] exponente = 0[br] while 2 ** exponente <= numero + 1:[br] if 2 ** exponente == numero + 1:[br] return es_primo(numero)[br] exponente += 1[br] return False[br][br]#23. Obtener los números perfectos hasta un límite:[br]def obtener_perfectos(limite):[br] perfectos = [][br] for numero in range(2, limite + 1):[br] if es_perfecto(numero):[br] perfectos.append(numero)[br] return perfectos[br][br]#24. Obtener los números de Armstrong hasta un límite:[br]def obtener_armstrong(limite):[br] armstrong = [][br] for numero in range(1, limite + 1):[br] suma = 0[br] for digito in str(numero):[br] suma += int(digito) ** len(str(numero))[br] if suma == numero:[br] armstrong.append(numero)[br] return armstrong[br][br]#25. Verificar si un número es un número de Harshad:[br]def es_harshad(numero):[br] suma_digitos = sum(int(digito) for digito in str(numero))[br] return numero % suma_digitos == 0[br][br]#26. Obtener los números de Harshad hasta un límite:[br]def obtener_harshad(limite):[br] harshad = [][br] for numero in range(1, limite + 1):[br] if es_harshad(numero):[br] harshad.append(numero)[br] return harshad[br][br]#27. Verificar si un número es un número de Kaprekar:[br]def es_kaprekar(numero):[br] cuadrado = str(numero ** 2)[br] for i in range(1, len(cuadrado)):[br] parte1 = int(cuadrado[:i])[br] parte2 = int(cuadrado[i:])[br] if parte1 != 0 and parte2 != 0 and parte1 + parte2 == numero:[br] return True[br] return False[br][br]#28. Obtener los números de Kaprekar hasta un límite:[br]def obtener_kaprekar(limite):[br] kaprekar = [][br] for numero in range(1, limite + 1):[br] if es_kaprekar(numero):[br] kaprekar.append(numero)[br] return kaprekar[br][br]#29. Verificar si un número es un número de Smith:[br]def es_smith(numero):[br] factores_primos = obtener_factores_primos(numero)[br] suma_digitos = sum(int(digito) for digito in str(numero))[br] suma_digitos_factores = sum(sum(int(digito) for digito in str(factor)) for factor in factores_primos)[br] return suma_digitos == suma_digitos + factores_primos - 1 if len(factores_primos) > 1 else 0[br][br]#30. Obtener los números de Smith hasta un límite:[br]def obtener_smith(limite):[br] smith = [][br] numero = 4[br] while len(smith) < limite:[br] if es_smith(numero):[br] smith.append(numero)[br] numero += 1[br] return smith
Geogebra Python

Information: Python - Teoría de Números