code wiki / _hdl_build / ee_fact.nx
ee_fact.nx source
↩ module page · 23 lines · 752 B
1// DISCOVERED BY nx_evo_loop (evolved iterative algorithm from examples) -- a real for-loop, at a HELD-OUT x. license_tier: ORIGINAL
2import "nx_syscalls.nx"
3func main() -> i64 {
4 let x: i64 = 7
5 var acc: i64 = 1
6 var i: i64 = 1
7 while i <= x {
8 acc = acc * i
9 acc = acc - i
10 acc = acc + i
11 i = i + 1
12 }
13 sys_write(1, "RESULT=" as *u8, 7)
14 var mm: i64 = acc
15 if mm < 0 { sys_write(1, "-" as *u8, 1); mm = 0 - mm }
16 let t: *u8 = sys_mmap(28)
17 var k: i64 = 0
18 if mm == 0 { t[0] = 48 as u8; k = 1 }
19 while mm > 0 { t[k] = (48 + (mm % 10)) as u8; mm = mm / 10; k = k + 1 }
20 while k > 0 { k = k - 1; sys_write(1, (((t as i64)+k) as *u8), 1) }
21 sys_write(1, "\n" as *u8, 1)
22 return 0
23}