본문 바로가기
iOS/swift

[앨런 swift 문법 마스터 스쿨] 연습 문제 | 배운 문법 사용해보기

by 23g 2024. 7. 4.

 

문제 : 값을 넣으면 소수인지 아닌지 판별하는 함수를 만들어라!

 

내 코드

func primeNumber(_ num: Int) -> String{
    var count = 0;
    for i in 1...num{
        if (num % i) == 0{
            count += 1
        }else {
            continue
        }
    }
    
    if count >= 3{
        return "소수가 아닙니다."
    }else{
        return "소수입니다."
    }
}

primeNumber(97)

 

개선 코드

func primeNumber(num: Int){
    for i in 2..<num{
        if num % i == 0{
            print("소수가 아닙니다.")
            return
        }
    }
    print("소수입니다.")
}

primeNumber(num: 14)

 

개선 코드가 더 나은 이유

: 내 원래 코드의 경우 약수가 3개 이상이면 소수가 아니다, 반대는 소수다 라는 과정이었다.

때문에 1~N까지 돌아야하는데 개선 코드의 경우 1과 자기자신(N)을 제외한 사잇값을 돌렸다.

내 코드 (N)번, 개선 코드 (N-2)번

 

약수의 갯수를 세기 위해 count라는 변수도 새로 생성했고

이를 판별하기위한 if문까지 사용되었다.

 

하지만 개선 코드에서는 if문의 True/False 값을 바로 소수 여부로 판단하여 결과값을 낼 수 있었다.

(정확히는 프린트물 출력 ㅎ)

 

swift 문법을 처음 배워보다보니까

쉬운 문제도 생각을 하고 풀어야한다!

 

그래도 재밌다 ^_^ b