include mpfr.e function subfactorial(integer n) sequence res = repeat(0,n) mpz num = mpz_init(1) for i=1 to n do mpz_mul_si(num,num,i) if mpz_odd(num) then mpz_sub_ui(num,num,1) else mpz_add_ui(num,num,1) end if res[i] = mpz_get_str(num) -- res[i] = mpz_init_set(num) end for return res end function ?extract(subfactorial(20),tagset(9)&20)