Obtener un número de números primos dado por teclado
Nombre: primos.sh
Autor: Flypp
Lenguaje: bash
Licencia: libre
Propósito: curiosidad
Código:
#!/bin/bash #################################################### #Script para que se muestren tantos números primos #como el usuario solicite desde el 1 #Nota: Deben introducirse números mayores que 0 ################################################### #Se solicita la cantidad de números primos a obtener read -p "¿Cantidad de números primos?" l echo Se obrendrán $l dígitos #Se inicializan los contadores # "c" será el contador encargado de contar cuántas # veces es divisible un número dado por su factorial c=0 # "k" Es el contador que lleva la cantidad de números # primos obtenidos. k=0 # "n" es el contador que recorre los números naturales # desde el 2 (el 1 no se comprueba, se pone tal cual) # hasta el límite n=2 # Aquí se hace la "trampa" de escribir el 1 y bajar el # límite una cifra (ya que hemos puesto el 1 a mano) echo 1 l=$[$l-1] # Esta secuencia marca que el programa debe seguir # ejecutándose hasta que se alcance el límite. while [ $k -ne $l ]; do # Para cada número (n) se comprobará cuáles # de sus factoriales son divisores de n for i in `seq 1 $n`;do r=$[$n%$i] # Si un número dado es divisor de n se # aumenta el contador c if [ $r -eq 0 ]; then c=$[$c+1] fi done # Por cada número n, si tiene únicamente 2 divisores # en su factorial, el número es primo y se muestra. # Después se pasa al siguiente número y se apunta # el "tanto" en k y se reinicia el contador c a 0. if [ $c -eq 2 ]; then echo "$i" k=$[$k+1] fi n=$[$n+1] c=0 done
Comentarios:
Éste script no tiene más utilidad que la de ser una simple curiosidad. Lo creé por aburrimiento y para practicar algo de bash
porque tengo memoria pez y se me olvida todo. Es muy simplón y ni siquiera hace la comprobación que no se introduzcan valores menores que 1.