Perl não tem uma função predefinida que permite obter os fatores primos de um número inteiro , mas usando recursão e os números de base -10 , você pode escrever sua própria função para realizar a tarefa . Usando a função " mapa " permite-lhe de forma recursiva executar um bloco de código em uma lista. Usando o número inteiro como a lista , você pode repetidamente extrair fatores primos dele para pegá-los todos , em seguida, usar a função " sprintf " para exibi-los na tela separados por um espaço para torná-los mais fáceis de ler . Instruções
1
Abra um arquivo de programa Perl. Digite o seguinte código:
sub fator {
for ($ i = 0; $ i < @ _ ; $ i + +) {
$ num = @ _ [ ,"$ i ];
print " Os fatores primos de @ _ [$ i] são: ";
mapa imprimir { sprintf ( "% s" , comprimento) , ""} getNext ( 1x $ num );
print " \\ n"; }
}
isso cria uma função simples chamado " fator " que leva qualquer número de parâmetros e imprime os fatores primos , cada um separado por um espaço. Ele chama a função " getNext " para realmente calcular os fatores primos
2
Digite o seguinte código: .
Sub getNext {
if ($ _ [0 ! ( ? .. +) ] ~ /^ \\ 1 + $ /) {
retornar @ _ ;
} else {
retorno mapa getNext ( $ _ ) , ( "$ 1" , $ _ [0] = ~ s /$ 1/1/g , $ _ [0]) [0 , -1 ];
}
} < br >
Isso cria a função " getNext " , que verifica se um inteiro é um número primo. Se assim for, ele retorna o número da função " fator " a ser impressa. Se não, ele chama a si mesmo de forma recursiva para encontrar o próximo menor primo
3
Digite o seguinte código:
fator (45) ;
fator. ( 3300,24 );
Estas duas linhas testar a função para obter fatores primos . A primeira linha tem apenas um parâmetro , por isso só mostra uma linha. Ele imprime 3 , 3 e 5 como fatores principais. A próxima linha recebe os fatores principais para dois números. Para 3300 , ele imprime 2, 2, 3, 5, 5 e 11 , e para 24 , ele imprime 2, 2, 2 e 3 .
4
Salve o programa Perl.