2015年

8月

18日

Swift 素数

素数(そすう)というのは、「1より大きい整数で、1とその数以外で割り切れない数」のことです。 例えば、「5」は1より大きい整数で、1と5でしか割り切れないので素数です。 しかし、「6」は2や3でも割り切れるので、素数ではありません。
 とりあえず、1から100まで整数が素数かどうか調べてみると、以下のとおりです。

 

此処でもループ処理をして結果をだしています。


Objective-Cの場合はこちら

ViewController.swift 素数表示

import UIKit


class ViewController: UIViewController {


    @IBOutlet weak var tvdisply: UITextView!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        

        // 初期処理

        self.tvdisply.text = nil

        

        // 編集は不可 ストリートボード Behavioneditable」のチェックを外す

        self.tvdisply.editable = false

        

        // 約数の表示処理

        //self.doDivisor()

        

        // 素数表示処理

        self.doPrime()

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }


    // 約数の表示処理

    func doDivisor() {

        

        // (初期値;)

        // ループ1

        for var i = 1; i <= 100; i++ {

            

            println("iの数値:\(i)")

        

            var l: Int = 0

            for var j = 1; j <= 10; j++ {

                

                println("jの値:\(i)(j)(k)")

                var k = i % j

                if k == 0 {

                    l++

                }

            }

            self.tvdisply.text =

                     self.tvdisply.text.stringByAppendingFormat("%d 約数の個数:%d \n",i,l)

        }

    }

    

    // 素数表示処理

    func doPrime() {

        for var i = 1; i <= 100; i++ {

            var l = 0

            for var j = 1; j <= 10; j++ {

                var k = i % j

                if k == 0 {

                    l++

                }

            }

            if i <= 10 {

                if l == 1 || l == 2 {

                    self.tvdisply.text =

                         self.tvdisply.text.stringByAppendingFormat("%d 素数:%d \n",i,l)

                }

            }

            else {

                if l == 1 {

                    self.tvdisply.text =

                         self.tvdisply.text.stringByAppendingFormat("%d 素数:%d \n",i,l)

                }

            }

        }

    }

}

DivisorViewController.swift 約数の個数表示

import UIKit


class DivisorViewController: UIViewController {


    @IBOutlet weak var tvdisply: UITextView!

    

    override func viewDidLoad() {

        super.viewDidLoad()


        // Do any additional setup after loading the view.

        

        super.viewDidLoad()

        

        // 初期処理

        self.tvdisply.text = nil

        

        // 編集は不可 ストリートボード Behavioneditable」のチェックを外す

        self.tvdisply.editable = false

        

        // 約数の表示処理

        self.doDivisor()

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    


    // 約数の表示処理

    func doDivisor() {

        

        // (初期値;)

        // ループ1

        for var i = 1; i <= 100; i++ {

            var l = 0

            

            // ループ2

            for var j = 1; j <= 10; j++ {

                var k = i % j

                

                // k = 0 割れたらならば l1をプラス

                if k == 0 {

                    l++

                }

            }

            

            // AppendingFormat文字の追加

            self.tvdisply.text =

                     self.tvdisply.text.stringByAppendingFormat("%d 約数の個数:%d \n",i,l)

        }

    }


}

GitHub PrimeSwift


▫️参考ページ

  

目 次