Livre-se do ponto. Os nomes das funções awk válidas consistem em uma sequência de letras, dígitos e sublinhados, e não começam com dígitos.
Eu resolvi o problema 3 do Projecteuler, mas o problema é que não consigo criar a função no awk.
Eu tentei este código de trabalho ( sem função):
#!/usr/bin/awk -f
BEGIN{
n=600851475143;
x=2; # minimual prime
while ( x<n ) {
if ( (n%x) == 0 ) {
n = n/x
print n
} else { # if n not devisable then increment x+1
x++
}
}
}
Não está funcionando com a função
#!/usr/bin/awk -f
# The prime factors of 13195 are 5, 7, 13 and 29.
# What is the largest prime factor of the number 600851475143 ?
function get.PrimeFactor(n) {
x=2; # minimual prime
while ( x<n ) {
if ( (n%x) == 0 ) {
n = n/x
print n
}
else { # if n not devisable then increment x+1
x++
}
}
BEGIN {
n = $1 # input number by user
get.PrimeFactor(n)
}
Eu tentei várias maneiras de trabalhar com a função, mas sem sorte.
Alguém pode destacar o que estou fazendo errado?
Trabalhando o Script AWK com função.
#!/usr/bin/awk -f
# The prime factors of 13195 are 5, 7, 13 and 29.
# What is the largest prime factor of the number 600851475143 ?
function get_PrimeFactor(n) {
x=2; # minimual prime
while ( x<n ) {
if ( (n%x) == 0 ) {
n = n/x
}
else { # if n not devisable then increment x+1
x++
}
}
return n
}
BEGIN {
n = ARGV[1] # input number by user
print get_PrimeFactor(n)
}
Tags awk