master amadaluzia/rosetta-collatz / swift / Sources / RosettaCollatz / RosettaCollatz.swift
 1// The Swift Programming Language
 2// https://docs.swift.org/swift-book
 3
 4func collatz(n: Int) -> Int {
 5    if n % 2 == 0 {
 6        return n / 2
 7    }
 8    return 3 * n + 1
 9}
10
11func collatzSequence(n: Int) -> String {
12    if (n == 1) {
13        return "1: 1"
14    }
15    var res = "\(n): "
16    var i = n
17    while i != 1 {
18        res += "\(i), "
19        i = collatz(n: i)
20    }
21    res += "1"
22    return res
23}
24
25@main
26struct RosettaCollatz {
27    static func main() {
28        for i in 1...10000 {
29            print(collatzSequence(n: i))
30        }
31    }
32}