Tecnología

Inicio

Cómo calcular los factores primos de un entero en Perl

Perl no tiene una función predefinida que le permite obtener los factores primos de un entero, pero el uso de la recursividad y la base 10 números, usted puede escribir su propia función para lograr la tarea. Utilizando la función de "mapa" le permite realizar de forma recursiva un bloque de código en una lista. Al utilizar el número entero como la lista, puede extraer repetidamente factores primos de ella para llegar a todos ellos, a continuación, utilizar la función "sprintf" para mostrarlos en la pantalla separadas por un espacio para que sean más fáciles de leer.

Instrucciones

1 Abrir un archivo de programa Perl. Escriba el siguiente código:

factor de sub {

for ($ i = 0; i <$ @_; $ i ++) {

$ Num = @_ [$ i];

print "Los factores primos de @_ [$ i] son:";

Mapa imprimir {sprintf ( "% s", longitud), ""} getNext (1x $ num);

imprimir "\ n";

}

}

Esto crea una función simple llamado "factor" que toma cualquier número de parámetros e imprime los factores primos, cada una separadas por un espacio. Se llama a la función "getNext" para calcular los factores primos realidad.

2 Escriba el siguiente código:

{sub getNext

if ($ _ [0]! ~ /^(..+?)\1+$/) {

regreso @_;

} Else {

volver mapa getNext

($), ( "$ 1", $ [0] = ~ s / $ 1/1 / g, $ _ [0]) [0, -1];

}

}

Esto crea la función "getNext", que comprueba si un número entero es un número primo. Si es así, devuelve el número de la función "factor" que se desea imprimir. Si no, se llama a sí misma recursivamente para encontrar el próximo primer bajo.

3 Escriba el siguiente código:

factor de (45);

los factores (3300,24);

Estas dos líneas de prueba de la función para obtener factores primos. La primera línea tiene un solo parámetro, por lo que sólo muestra una línea. Se imprime 3, 3 y 5 como factores primos. La siguiente línea obtiene los factores primos de dos números. Para 3300, se imprime 2, 2, 3, 5, 5 y 11, y de 24, se imprime 2, 2, 2 y 3.

4 Guarde el programa Perl.