본문 바로가기

# 02/Swift - CTP

[Swift] 백준! 1837번 - 암호제작

반응형

https://www.acmicpc.net/problem/1837

 

1837번: 암호제작

원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로

www.acmicpc.net

import Foundation

func mod(_ s:String, _ p:Int) -> Int {
    var ret = 0
    for c in s {
        ret = (ret*10+Int(String(c))!)%p
    }
    return ret
}

func isPrime(_ num: Int) -> Bool {
    if(num<4) {
        return num == 1 ? false : true
    }
    for i in 2...Int(sqrt(Double(num))) {
        if(num % i == 0) { return false }
    }
    return true
}

let list = readLine()!.split(separator: " ")
let str = String(list[0])
let k = Int(list[1])!
var isDone = false
for i in 2..<k {
    if isPrime(i) {
        if mod(str, i) == 0 {
            print("BAD \(i)")
            isDone = true
            break
        }
    }
}
if !isDone {
    print("GOOD")
}
반응형