Ejercicios de Go
Prime Numbers in Go
Test whether a number is prime and list the primes up to 30.
Lo que aprenderás
- Trial division
- Stopping at the square root
- Building a slice
2 to 7
2prime
3prime
42 x 2
5prime
62 x 3
7prime
Only divisible by 1 and itself
A prime number is larger than 1 and can only be divided by 1 and itself. Write a function that tests one number, then use it in a loop.
It is enough to try divisors up to the square root of n, which is what divisor*divisor <= n checks. The loop in main appends every number for which isPrime returns true.
Puntos clave
- Numbers below 2 are not prime.
- Divisors up to the square root are enough.
- append collects the primes.
Ejemplo ejecutable de Go
main.go
package main
import "fmt"
func isPrime(n int) bool {
if n < 2 {
return false
}
for divisor := 2; divisor*divisor <= n; divisor++ {
if n%divisor == 0 {
return false
}
}
return true
}
func main() {
primes := []int{}
for n := 1; n <= 30; n++ {
if isPrime(n) {
primes = append(primes, n)
}
}
fmt.Println(primes)
fmt.Println("97 is prime:", isPrime(97))
}
[2 3 5 7 11 13 17 19 23 29]
97 is prime: truePractica
Abre el ejemplo en el compilador online, cambia un valor o añade una línea y predice la salida antes de ejecutarlo. Después rompe el código a propósito y lee el mensaje del compilador.
¿Terminaste esta lección?
Márcala como aprendida para seguir tu progreso.
Tu progreso está guardado en este navegador Inicia sesión para conservarlo en todos tus dispositivos.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
- Verificación de número primo Determina si un número es primo. Fácil
- Listar Primos con un Criba Encuentra números primos hasta un límite marcando los múltiplos compuestos. Intermedio