Motzkin numbers: Difference between revisions
Content added Content deleted
Catskill549 (talk | contribs) (added AWK) |
(Add swift) |
||
Line 1,319: | Line 1,319: | ||
41: 192137918101841817 |
41: 192137918101841817 |
||
</pre> |
</pre> |
||
=={{header|Swift}}== |
|||
{{trans|Rust}} |
|||
<lang swift>import Foundation |
|||
extension BinaryInteger { |
|||
@inlinable |
|||
public var isPrime: Bool { |
|||
if self == 0 || self == 1 { |
|||
return false |
|||
} else if self == 2 { |
|||
return true |
|||
} |
|||
let max = Self(ceil((Double(self).squareRoot()))) |
|||
for i in stride(from: 2, through: max, by: 1) where self % i == 0 { |
|||
return false |
|||
} |
|||
return true |
|||
} |
|||
} |
|||
func motzkin(_ n: Int) -> [Int] { |
|||
var m = Array(repeating: 0, count: n) |
|||
m[0] = 1 |
|||
m[1] = 1 |
|||
for i in 2..<n { |
|||
m[i] = (m[i - 1] * (2 * i + 1) + m[i - 2] * (3 * i - 3)) / (i + 2) |
|||
} |
|||
return m |
|||
} |
|||
let m = motzkin(42) |
|||
for (i, n) in m.enumerated() { |
|||
print("\(i): \(n) \(n.isPrime ? "prime" : "")") |
|||
}</lang> |
|||
{{out}} |
|||
<pre>0: 1 |
|||
1: 1 |
|||
2: 2 prime |
|||
3: 4 |
|||
4: 9 |
|||
5: 21 |
|||
6: 51 |
|||
7: 127 prime |
|||
8: 323 |
|||
9: 835 |
|||
10: 2188 |
|||
11: 5798 |
|||
12: 15511 prime |
|||
13: 41835 |
|||
14: 113634 |
|||
15: 310572 |
|||
16: 853467 |
|||
17: 2356779 |
|||
18: 6536382 |
|||
19: 18199284 |
|||
20: 50852019 |
|||
21: 142547559 |
|||
22: 400763223 |
|||
23: 1129760415 |
|||
24: 3192727797 |
|||
25: 9043402501 |
|||
26: 25669818476 |
|||
27: 73007772802 |
|||
28: 208023278209 |
|||
29: 593742784829 |
|||
30: 1697385471211 |
|||
31: 4859761676391 |
|||
32: 13933569346707 |
|||
33: 40002464776083 |
|||
34: 114988706524270 |
|||
35: 330931069469828 |
|||
36: 953467954114363 prime |
|||
37: 2750016719520991 |
|||
38: 7939655757745265 |
|||
39: 22944749046030949 |
|||
40: 66368199913921497 |
|||
41: 192137918101841817</pre> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |