fn choose(n: u32, k0: u32) -> u32 { var k: u32 = k0 if k > n - k { k = n - k } var result: u32 = 1 var i: u32 = 1 while i <= k { result = result * (n - k + i) / i i = i + 1 } return result } fn permute(n: u32, k: u32) -> u32 { var result: u32 = 1 var i: u32 = 0 while i < k { result = result * (n - i) i = i + 1 } return result } pub fn main(world: World) -> Void raises { if choose(5, 3) == 10 && permute(5, 3) == 60 { check world.out.write("combinations permutations ok\n") } }