Ejercicio: 1Eva_IT2010_T2 Número Omirp
[ algoritmo ] [ diagrama flujo ]
Nota: Omirp se lee de derecha a izquierda como primo.
Repasar algoritmo de validación de números primos, también el algoritmo para invertir dígitos de un número. En este ejercicio es necesario usar ambos.
Primero para verificar si el número a verificar es primo, inicia suponiendo que es primo y busca probar lo opuesto.
# revisa si es primo esprimo = 1 i = 2 while (i<n): r = n%i if r==0: esprimo = 0 i = i+1
luego para invertir sus dígitos, usando residuo de 10 y cociente.
Los residuos se añaden como unidades al número al revés multiplicado por 10
número | 1597 | 159 | 15 | 1 |
residuo | 7 | 9 | 5 | 1 |
cociente | 159 | 15 | 1 | 0 |
al revés | 0*10+7 = 7 | 7*10+9 = 79 | 79*10+5 = 795 | 7951 |
# invierte los dígitos del número m = n alreves = 0 while (m>0): r = m%10 m = m//10 alreves = alreves*10 + r
Finalmente verificar si el número con dígitos invertidos también es primo.
# revisa si es omirp if (esprimo==1 and esprimoA==1): omirp = 1 else: omirp = 0
Si ambos son primos entonces el número es omirp.
[ algoritmo ] [ diagrama flujo ]
..
Algoritmo en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 1Eva_IT2010_T2 Número Omirp # Propuesta: edelros@espol.edu.ec # INGRESO n = int(input('numero a validar omirp: ')) # PROCEDIMIENTO # revisa si es primo esprimo = 1 i = 2 while (i<n): r = n%i if r==0: esprimo = 0 i = i+1 # invierte los dígitos del número m = n alreves = 0 while (m>0): r = m%10 m = m//10 alreves = alreves*10 + r # revisa si alreves es primo esprimoA = 1 i = 2 while (i<alreves): r = alreves%i if r==0: esprimoA = 0 i = i + 1 # revisa si es omirp if (esprimo==1 and esprimoA==1): omirp = 1 else: omirp = 0 # SALIDA print('es número omirp: ', omirp)
Resultado del algoritmo
numero a validar omirp: 1597 es número omirp: 1 >>> numero a validar omirp: 1598 es número omirp: 0 >>>
[ algoritmo ] [ diagrama flujo ]
..
Diagrama de Flujo
[ algoritmo ] [ diagrama flujo ]
Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab