[swift] 정렬 함수를 사용하여 소수 찾기

이번에는 Swift에서 정렬 함수를 사용하여 소수를 찾는 방법에 대해 알아보겠습니다. 소수는 1과 자기 자신만으로 나누어 떨어지는 수로, 약수가 1과 자기 자신뿐인 수입니다.

정렬 함수를 사용하여 소수를 찾으려면 다음과 같은 단계를 따라야 합니다:

1. 정수 배열 생성 및 초기화

우선, 소수를 찾기 위한 정수 배열을 생성하고 초기화합니다. 예를 들어, 1부터 100까지의 정수 배열을 생성하려면 다음과 같이 작성합니다:

var numbers = Array(1...100)

2. 소수를 찾기 위한 필터 함수 생성

정렬 함수를 사용하기 전에, 소수를 찾기 위한 필터 함수를 생성해야 합니다. 필터 함수는 주어진 수가 소수인지를 판별하고 그 결과를 리턴하는 역할을 합니다. 이를 위해, 다음과 같이 필터 함수를 작성합니다:

func isPrime(number: Int) -> Bool {
    if number < 2 {
        return false
    }
    
    for i in 2..<number {
        if number % i == 0 {
            return false
        }
    }
    
    return true
}

위의 코드에서, isPrime 함수는 주어진 숫자가 2보다 작거나, 2부터 주어진 숫자까지 반복하면서 주어진 숫자로 나누어 떨어지는지를 확인하여 소수인 경우 true를, 그렇지 않은 경우 false를 리턴합니다.

3. 정렬 함수를 사용하여 소수 찾기

이제 정렬 함수를 사용하여 소수를 찾을 차례입니다. 이를 위해, numbers 배열에 filter 함수를 호출하고 필터 함수로 isPrime 함수를 사용해야 합니다. 다음과 같이 작성합니다:

let primes = numbers.filter { isPrime(number: $0) }

위의 코드에서, filter 함수는 numbers 배열 요소 중에서 isPrime 함수를 사용하여 소수인 요소만을 필터링하여 primes 배열에 저장합니다.

4. 결과 출력

마지막으로, 소수를 찾은 결과를 출력합니다. 예를 들어, primes 배열의 요소들을 쉼표로 구분하여 한 줄로 출력하려면 다음과 같이 작성합니다:

let result = primes.map(String.init).joined(separator: ", ")
print("소수: \(result)")

위의 코드에서, map 함수는 primes 배열 내의 요소들을 String으로 변환하고 joined 함수는 변환된 요소들을 쉼표로 구분하여 결합한 결과를 리턴합니다. 이후, print 함수를 사용하여 결과를 출력합니다.

이제, 위의 코드를 실행하면 정렬 함수를 사용하여 소수를 찾을 수 있습니다.

참고 자료