その時凡人が動いた

凡人が凡人らしからぬことをするために日々奮闘するブログ

SwiftでInt型に素数かどうか判定するメソッドを追加

f:id:alex23drum:20140803222155p:plain

今回はSwiftのextensionを使って、Int型に素数かどうかを判定するメソッドを追加したいと思います!!

「extension」って何?

extensionは既存の型に新たな機能を後から付け加えることの出来る機能です。 書き方としては、

extension 拡張したい型 {
    拡張する機能
}

このような記述をして使います。

Int型に素数かどうか判定するメソッドを追加してみよう!

では、このextensionを使ってInt型に素数かどうかを判断するインスタンスメソッドを追加してみましょう!

extension Int {
  
  // judge the number is a prime or not
  func is_prime() -> Bool {
    var arr: [Int] = []    // store divisors
    for num in 1...self {
      // find divisors
      if self % num == 0 {
        arr += num
      }
    }
    if arr.count < 3 && self != 1 && self > 0 {
      return true
    } else {
      return false
    }
  }
}

8.is_prime()    // return false
11.is_prime()   // return true

以上です。お疲れ様でした^^