Autor Tema: Primos gemelos en Magma

0 Usuarios y 1 Visitante están viendo este tema.

14 Septiembre, 2019, 02:17 am
Leído 1114 veces

Julio_fmat

  • Héroe
  • Mensajes: 2,297
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
    • Fmat
Escriba un programa Magma que dado \( n\in \mathbb{N} \) cuente cuántos pares de primos gemelos hay con \( p\le n \) y \( p+2\le n. \)

Hola, no me quedó claro este problema que resolvió mi ayudante. Usa el comando function(n) end function; y crea una lista L.
"Haz de las Matemáticas tu pasión".

15 Septiembre, 2019, 04:38 am
Respuesta #1

Julio_fmat

  • Héroe
  • Mensajes: 2,297
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
    • Fmat
Hola, escribo lo siguiente en Magma:

TwinCounter:=function(n);
L:=[[p,p+2]: p in [1..n-2] | TwinPrime(p)];
return #L;
end function;

TwinCounter(100);

Pero me arroja error, no se cual es el problema...  :banghead:

An error occurred. See the output for details.

>> L:=[[p,p+2]: p in [1..n-2] | TwinPrime(p)];
                                ^
User error: Identifier 'TwinPrime' has not been declared or assigned

>> TwinCounter(100);
   ^
User error: Identifier 'TwinCounter' has not been declared or assigned
"Haz de las Matemáticas tu pasión".

16 Septiembre, 2019, 11:03 am
Respuesta #2

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 47,035
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Hola

Hola, escribo lo siguiente en Magma:

TwinCounter:=function(n);
L:=[[p,p+2]: p in [1..n-2] | TwinPrime(p)];
return #L;
end function;

TwinCounter(100);

Pero me arroja error, no se cual es el problema...  :banghead:

An error occurred. See the output for details.

>> L:=[[p,p+2]: p in [1..n-2] | TwinPrime(p)];
                                ^
User error: Identifier 'TwinPrime' has not been declared or assigned

>> TwinCounter(100);
   ^
User error: Identifier 'TwinCounter' has not been declared or assigned

No es que sepa demasiado de magma; pero me parece que el problema es que TwinPrime no está definido.

O previamente creas otra función que determine cuando simultáneamente \( p \) y \( p+2 \) son primos:

Código: [Seleccionar]
TwinPrime:=function(p);
return IsPrime(p) and IsPrime(p+2);
end function;

TwinCounter:=function(n);
L:=[[p,p+2]: p in [1..n-2] | TwinPrime(p)];
return #L;
end function;

TwinCounter(100);

 o haces algo así:

Código: [Seleccionar]
TwinCounter:=function(n);
L:=[[p,p+2]: p in [1..n-2] | IsPrime(p) and IsPrime(p+2)];
return #L;
end function;

Saludos.