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 예제
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연습
예제를 온라인 컴파일러에서 열고 값을 바꾸거나 한 줄을 추가한 다음, 실행하기 전에 출력을 예상해 보세요. 그런 다음 일부러 코드를 망가뜨리고 컴파일러 메시지를 읽어 보세요.
이 레슨을 마쳤나요?
학습 완료로 표시하면 진행 상황을 기록할 수 있습니다.
진행 상황이 이 브라우저에 저장되어 있습니다 로그인하면 모든 기기에서 이어갈 수 있습니다.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
- 소수 판별 숫자가 소수인지 판별하세요. 쉬움
- List Primes With a Sieve Find primes up to a limit by marking composite multiples. 보통