나머지가 1되는 수 찾기

hankyulee·2021년 11월 15일
0

Swift coding test 준비

목록 보기
39/57

마지막 4개 테스트케이스 실패.
36의 경우 5 이다.
규칙찾는 문제는 최소 50개는 해봐야하는것같다.

애초에 한 문장으로 끝나는 문제인데 괜히 어렵게 풀었다.

import Foundation
func sosuF(_ n:Int)->Int{
    var sosu = 0
    for num in (2...n){
        if (n) % num == 0 {
            sosu += 1
        }
    }
    return sosu == 1 ? 1 : 0
}
func solution(_ n:Int) -> Int {
    var sosu = 0
    // for num in (2...n-1){
    //     if (n - 1) % num == 0 {
    //         sosu += 1
    //     }
    // }

    if 1 == sosuF(n-1) { 
        print("sosu")
        return n - 1
    }
    
    if (n - 1) % 2 == 0 {return 2}
    print(sqrt(Double(n-1)) * sqrt(Double(n-1)))
    
    if sqrt(Double(n-1)) * sqrt(Double(n-1)) == Double(n-1) {
        let val = Int(sqrt(Double(n-1)))
        if sosuF(val) == 1 {
            return val
        }
    }
    if (n - 1) % 3 == 0 {return 3} 
    return 0
}

**

완료 코드 추가)

**

import Foundation
func sosuF(_ n:Int)->Int{
    
    
    var sosu = 0
    for num in (2...n){
        if (n) % num == 0 {
            sosu += 1
        }
    }
    return sosu == 1 ? 1 : 0
}
func moks(int:Int)->Int{
    for i in (2...1000000){
        if int % i == 0 {
            return i
        }
    }
    return 0
}
func solution(_ n:Int) -> Int {
    if n % 2 != 0 {
        return 2 
    }
    else {
        if sosuF(n-1) == 1{
            return n - 1
        }
        else {return moks(int:n-1)}
    }
    
    return 0
}

0개의 댓글