fn mobius(n: u32) -> i32 { var value: u32 = n var primes: u32 = 0 var p: u32 = 2 while p * p <= value { if value % p == 0 { value = value / p primes = primes + 1 if value % p == 0 { return 0 } } p = p + 1 } if value > 1 { primes = primes + 1 } if primes % 2 == 0 { return 1 } return -1 } pub fn main(world: World) -> Void raises { if mobius(30) == -1 { check world.out.write("mobius ok\n") } }