2014年8月5日火曜日

開発環境

初めてのPerl 第6版 (Randal L. Schwartz (著)、brian d foy (著)、Tom Phoenix (著)、近藤 嘉雪 (翻訳)、オライリージャパン)、15章(スマートマッチとgiven-when)の15.6(練習問題)5.をSwiftで考えてみる。

15.6(練習問題)5.

コード(Xcode)

main.swift

//
//  main.swift
//  sample5
//
//  Created by kamimura on 8/5/14.
//  Copyright (c) 2014 kamimura. All rights reserved.
//

import Foundation

func divisors (n:Int) -> [Int] {
    var nums:[Int] = []
    
    for x in 2...n/2 {
        if (n % x == 0) {
            nums.append(x)
        }
    }
    return nums
}

let fav:Int = 10

for n:Int in 2...100 {
    print("\(n): ")
    let nums:[Int] = divisors(n)
    if !nums.isEmpty && nums[0] == 2 {
        print("偶数 ")
    } else {
        print("奇数 ")
    }
    for x in nums {
        if x % fav == 0 || x == fav {
            print("好きな数(\(fav))の倍数 ")
        }
    }
    if nums.isEmpty {
        println("素数")
    } else {
        let s = " ".join(nums.map({
            (number: Int) -> String in
            return String(number)
            }))
        println("約数一覧: \(s)")
    }
}

入出力結果(Console Output)

2: 奇数 素数
3: 奇数 素数
4: 偶数 約数一覧: 2
5: 奇数 素数
6: 偶数 約数一覧: 2 3
7: 奇数 素数
8: 偶数 約数一覧: 2 4
9: 奇数 約数一覧: 3
10: 偶数 約数一覧: 2 5
11: 奇数 素数
12: 偶数 約数一覧: 2 3 4 6
13: 奇数 素数
14: 偶数 約数一覧: 2 7
15: 奇数 約数一覧: 3 5
16: 偶数 約数一覧: 2 4 8
17: 奇数 素数
18: 偶数 約数一覧: 2 3 6 9
19: 奇数 素数
20: 偶数 好きな数(10)の倍数 約数一覧: 2 4 5 10
21: 奇数 約数一覧: 3 7
22: 偶数 約数一覧: 2 11
23: 奇数 素数
24: 偶数 約数一覧: 2 3 4 6 8 12
25: 奇数 約数一覧: 5
26: 偶数 約数一覧: 2 13
27: 奇数 約数一覧: 3 9
28: 偶数 約数一覧: 2 4 7 14
29: 奇数 素数
30: 偶数 好きな数(10)の倍数 約数一覧: 2 3 5 6 10 15
31: 奇数 素数
32: 偶数 約数一覧: 2 4 8 16
33: 奇数 約数一覧: 3 11
34: 偶数 約数一覧: 2 17
35: 奇数 約数一覧: 5 7
36: 偶数 約数一覧: 2 3 4 6 9 12 18
37: 奇数 素数
38: 偶数 約数一覧: 2 19
39: 奇数 約数一覧: 3 13
40: 偶数 好きな数(10)の倍数 好きな数(10)の倍数 約数一覧: 2 4 5 8 10 20
41: 奇数 素数
42: 偶数 約数一覧: 2 3 6 7 14 21
43: 奇数 素数
44: 偶数 約数一覧: 2 4 11 22
45: 奇数 約数一覧: 3 5 9 15
46: 偶数 約数一覧: 2 23
47: 奇数 素数
48: 偶数 約数一覧: 2 3 4 6 8 12 16 24
49: 奇数 約数一覧: 7
50: 偶数 好きな数(10)の倍数 約数一覧: 2 5 10 25
51: 奇数 約数一覧: 3 17
52: 偶数 約数一覧: 2 4 13 26
53: 奇数 素数
54: 偶数 約数一覧: 2 3 6 9 18 27
55: 奇数 約数一覧: 5 11
56: 偶数 約数一覧: 2 4 7 8 14 28
57: 奇数 約数一覧: 3 19
58: 偶数 約数一覧: 2 29
59: 奇数 素数
60: 偶数 好きな数(10)の倍数 好きな数(10)の倍数 好きな数(10)の倍数 約数一覧: 2 3 4 5 6 10 12 15 20 30
61: 奇数 素数
62: 偶数 約数一覧: 2 31
63: 奇数 約数一覧: 3 7 9 21
64: 偶数 約数一覧: 2 4 8 16 32
65: 奇数 約数一覧: 5 13
66: 偶数 約数一覧: 2 3 6 11 22 33
67: 奇数 素数
68: 偶数 約数一覧: 2 4 17 34
69: 奇数 約数一覧: 3 23
70: 偶数 好きな数(10)の倍数 約数一覧: 2 5 7 10 14 35
71: 奇数 素数
72: 偶数 約数一覧: 2 3 4 6 8 9 12 18 24 36
73: 奇数 素数
74: 偶数 約数一覧: 2 37
75: 奇数 約数一覧: 3 5 15 25
76: 偶数 約数一覧: 2 4 19 38
77: 奇数 約数一覧: 7 11
78: 偶数 約数一覧: 2 3 6 13 26 39
79: 奇数 素数
80: 偶数 好きな数(10)の倍数 好きな数(10)の倍数 好きな数(10)の倍数 約数一覧: 2 4 5 8 10 16 20 40
81: 奇数 約数一覧: 3 9 27
82: 偶数 約数一覧: 2 41
83: 奇数 素数
84: 偶数 約数一覧: 2 3 4 6 7 12 14 21 28 42
85: 奇数 約数一覧: 5 17
86: 偶数 約数一覧: 2 43
87: 奇数 約数一覧: 3 29
88: 偶数 約数一覧: 2 4 8 11 22 44
89: 奇数 素数
90: 偶数 好きな数(10)の倍数 好きな数(10)の倍数 約数一覧: 2 3 5 6 9 10 15 18 30 45
91: 奇数 約数一覧: 7 13
92: 偶数 約数一覧: 2 4 23 46
93: 奇数 約数一覧: 3 31
94: 偶数 約数一覧: 2 47
95: 奇数 約数一覧: 5 19
96: 偶数 約数一覧: 2 3 4 6 8 12 16 24 32 48
97: 奇数 素数
98: 偶数 約数一覧: 2 7 14 49
99: 奇数 約数一覧: 3 9 11 33
100: 偶数 好きな数(10)の倍数 好きな数(10)の倍数 好きな数(10)の倍数 約数一覧: 2 4 5 10 20 25 50
Program ended with exit code: 0

0 コメント:

コメントを投稿