s1Eva_IT2010_T2 Número Omirp

Ejercicio: 1Eva_IT2010_T2 Número Omirp

[ algoritmo ] [ diagrama flujo ]

Nota: Omirp se lee de derecha a izquierda como primo.Número OMIRP

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

Ejemplo
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

Número Omirp 01

Número Omirp 02

Número Omirp 03

[ algoritmo ] [ diagrama flujo ]


Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab

ejercicios resueltos Python 1eva_it2010_t2 pdf

ejercicios resueltos Matlab 1eva_it2010_t2 pdf