Упражнения по Go
Prime Numbers in Go
Test whether a number is prime and list the primes up to 30.
Что вы узнаете
- 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.
Главное
- Numbers below 2 are not prime.
- Divisors up to the square root are enough.
- append collects the primes.
Пример на 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: trueПрактика
Откройте пример в онлайн-компиляторе, измените значение или добавьте строку и попробуйте предсказать вывод до запуска. Затем намеренно сломайте код и прочитайте сообщение компилятора.
Закончили этот урок?
Отметьте его как изученный, чтобы следить за прогрессом.
Ваш прогресс сохранён в этом браузере Войдите, чтобы он был доступен на всех устройствах.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- Проверка на простое число Определите, является ли число простым. Легко
- List Primes With a Sieve Find primes up to a limit by marking composite multiples. Средне