Python - función panprimo que determine si un número n es pandigital en Python

 
Vista:
Imágen de perfil de Sofía
Val: 37
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

función panprimo que determine si un número n es pandigital en Python

Publicado por Sofía (7 intervenciones) el 02/02/2021 07:22:49
Considere que existen los números primos y los números pandigitales. Los números pandigitales son aquellos que contienen todos los dígitos del 0 al 9 al menos una vez, como el 1023478695. Escribe una función panprimo que determine si un número n es pandigital y si al mismo tiempo, sus últimos 3 dígitos conforman un número primo, retornando True o False según corresponda. Por ejemplo:

1) El número 2424643 cumple que sus últimos 3 dígitos conforman un número primo (643), pero no es pandigital por lo tu función que debería retornar False.

2) El número 1234567890 cumple que es pandigital, pero sus últimos 3 dígitos no conforman un primo (890), por lo que tu función debería retornar False.

3) El número 10123485769 cumple que es pandigital y además el número conformado por sus 3 últimos dígitos (769) es primo, por lo que debería retornar True.

Tip1: Puedes convertir un entero a una cadena de texto con el método str(numero), y puedes verificar si alguna letra está en el esta cadena de texto haciendo if letra in string: ...

Tip2: Un número es primo si solo es divisible por 1 y por sí mismo. Para obtener los últimos tres dígitos, puedes obtener el resto del número en su división con 100.

lo resolví así pero me sale todos FALSE, ingreso un numero primo y me sale false y deberia salir True.
porfabvor y gracias.

1
2
3
4
5
6
7
8
9
10
11
12
def panprimo(n):
  string = str(n)
  for aux in range(9):
   letra = str(aux)
   if letra not in string:
     return False
  nuevo = n%1000
  for aux in range(2,nuevo):
    if nuevo%aux ==0:
      return False
  return True
print(panprimo(890))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

función panprimo que determine si un número n es pandigital en Python

Publicado por tincopasan (1082 intervenciones) el 02/02/2021 08:58:28
el foro tiene un buscador, esta pregunta la conteste de una forma simple para que sea entendible el año pasado.
https://www.lawebdelprogramador.com/foros/Python/1738837-Pandigital-primo-python.html

por supuesto que hay una forma más corta.

Dicho sea de paso siguen con un mal planteo, la división deber ser por 1000 y no por 100, no cambian ni el texto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de sofía
Val: 37
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

función panprimo que determine si un número n es pandigital en Python

Publicado por sofía (7 intervenciones) el 02/02/2021 19:40:24
hola gracias, ya revise el código, pero al poner 10123578649 ejecuta True y debería ejecutar False

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def pandigital(numero):
    n = str(numero)
    if len(n) < 10:
        return False
    else:
        lista = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
        for x in n:
            if x in lista:
                lista.remove(x)
        if len(lista) == 0:
            return True
        else:
            return False
 
def primo(numero):
    n = numero % 1000
    for i in range(2, n):
        if (n % i) == 0:
            return False
        return True
 
 
def panprimo(n):
    if pandigital(n) and primo(n):
        return True
    return False
 
print(panprimo(10123578649))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

función panprimo que determine si un número n es pandigital en Python

Publicado por tincopasan (1082 intervenciones) el 02/02/2021 23:17:32
se ve que hubo un error al copiar pegar el código en el indentado:
1
2
3
4
5
6
def primo(numero):
    n = numero % 1000
    for i in range(2, n):
        if (n % i) == 0:
            return False
    return True

el último return está dentro del for.
ahora sino pudiste solucionar eso, es que no has entendido nada del código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de sofía
Val: 37
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

función panprimo que determine si un número n es pandigital en Python

Publicado por sofía (7 intervenciones) el 02/02/2021 23:23:10
11

El objetivo de este ejercicio, es que programes una función buscaminas que reciba como argumento a una matriz tablero y dos coordenadas i, j, y que entregue la cantidad de bombas que rodean a esa posición.

Por ejemplo, si la el tablero dado es el representado en la tabla, y la posición viene dada por i=0 y j=0, tu función debe retornar el valor 2, ya que hay dos bombas rodeándola, en (0,1) y (1,0).

Por otro lado, si el tablero es el mismo, y las coordenadas son i=1, j=1, tu función debe retornar 4, pues hay bombas rodeando la posición en (1,0), en (0,1), en (2,1) y en (2,2).

Hint: recuerda que el tablero puede ser de un tamaño arbitrario y que al escribir posiciones más grandes que ese tamaño o menores que 0, tu programa arrojará error.

DISCULPA ALGUIEN ME PODRIA AYUDAR CON ESE EJERCICIIO NO LO ENTIENDO
POR FAVOR!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

función panprimo que determine si un número n es pandigital en Python

Publicado por joel (901 intervenciones) el 03/02/2021 07:59:46
Hola Sofia, es importante abrir un nuevo tema para cada pregunta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

función panprimo que determine si un número n es pandigital en Python

Publicado por Roberto (1 intervención) el 22/09/2022 17:11:49
Estimados aqui esta el codigo funcionando!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def panprimo(n):  # escribe tu función aquí, recuerda seguir cuidadosamente
    # las instrucciones respecto a argumentos y retorno
 
    pandigital = True
 
    n = str(n)
    if len(n) < 10:
        pandigital = False
    else:
        lista = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
        for x in n:
            if x in lista:
                lista.remove(x)
        if len(lista) == 0:
            pandigital = True
        else:
            pandigital = False
 
    primo = True
    n1 = int(n) % 1000
    for i in range(2, n1):
        if (n1 % i) == 0:
            primo = False
 
 
    if pandigital and primo:
        return True
    return False
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar