void Main() { var b = 10551358; var a = 0; for (int i = 1; i <= b; i++) if (b % i == 0)a+=i; a.Dump(); } /* [1-ORIGINAL] [2-SYNTAX] [3-RESOLVE] [4-SIMPLIFY] #ip 1 00: addi 1 16 1 [1]=[1]+16 JMP 17 JMP 17 01: seti 1 5 5 [5]=1 1: E := 1 02: seti 1 2 3 [3]=1 2: C := 1 03: mulr 5 3 2 [2]=[3]*[5] 3: B := C*E 04: eqrr 2 4 2 [2]=([2]==[4]) if (B = D) A += E 05: addr 2 1 1 [1]=[2]+[1] JMP 6+[2] 06: addi 1 1 1 [1]++ JMP 8 07: addr 5 0 0 [0]=[5]+[0] 08: addi 3 1 3 [3]++ C++ 09: gtrr 3 4 2 [2]=([3]>[4]) if (C<=D) JUMP 3 10: addr 1 2 1 [1]=[1]+[2] JMP 11+[2] 11: seti 2 6 1 [1]=2 JMP 3 12: addi 5 1 5 [5]++ E++ 13: gtrr 5 4 2 [2]=([5]>[4]) if (E<=D) JUMP 2 else EXIT 14: addr 2 1 1 [1]=[1]+[2] JMP 15+[2] 15: seti 1 8 1 [1]=1 JMP 2 16: mulr 1 1 1 [1]=[1]*[1] EXIT 17: addi 4 2 4 [4]+=2 17: D+=2 | 18: mulr 4 4 4 [4]=[4]*[4] D=D*D | 19: mulr 1 4 4 [4]=[4]*[1] [4]=[4]*19 D*=19 | 20: muli 4 11 4 [4]=[4]*[1] [4]=[4]*11 D*=11 | 21: addi 2 5 2 [2]=[2]+5 B+=5 | 22: mulr 2 1 2 [2]=[2]*[1] [2]=[2]*22 B*=22 | 23: addi 2 12 2 [2]=[2]+12 B+=12 |B := 122 24: addr 4 2 4 [4]=[4]+[2] D+=B |D := 958 25: addr 1 0 1 [1]=[1]+[0] JMP 26+[0] if (A = 0) JUMP 1 26: seti 0 4 1 [1]=0 JMP 1 27: setr 1 4 2 [2]=[1] [2]=[4]+27 B=27 | 28: mulr 2 1 2 [2]=[2]*[1] [2]=[2]*28 B=B*28 | 29: addr 1 2 2 [2]=[2]+[1] [2]=[2]+29 B=B+29 | 30: mulr 1 2 2 [2]=[2]*[1] [2]=[2]*30 B=B*30 | 31: muli 2 14 2 [2]=[2]*14 B=B*14 | 32: mulr 2 1 2 [2]=[2]*[1] [2]=[2]*32 B=B*32 |B := 10550400 33: addr 4 2 4 [4]=[2]+[4] D=B+D |D := 10551358 34: seti 0 3 0 [0]=0 A=0 35: seti 0 7 1 [1]=0 JMP 1 JUMP 1 [5-SHRINK] JMP 17 1: E := 1 2: C := 1 3: B := C*E if (B = D) A += E C++ if (C<=D) JUMP 3 E++ if (E<=D) JUMP 2 else EXIT 17: B = 122 D = 958 if (A = 0) JUMP 1 B = 10550400 D = 10551358 A=0 JUMP 1 [6-REORDER] if (A=0) B = 122; D = 958 else B = 10550400; D = 10551358; A = 0 E=1 S1: C=1 S2: B=C*E if (B = D) A += E C++ if (C<=D) JUMP S2 E++ if (E<=D) JUMP S1 else EXIT [7-LANGUAGE] if (A=0) B = 122; D = 958; else B = 10550400; D = 10551358; A = 0 E = 1 do { C=1 do { B=C*E if (B == D) A += E C++ } while (C <= D) E++ } while (E <= D) [8-SUGAR] if (A=0) B = 122; D = 958; else B = 10550400; D = 10551358; A = 0 E = 1 for(E=1; E<=D; E++) { for(C=1; C<=D; C++) { if (C*E == D) A += E } } [9-EXPLANATION] THE SUM OF ALL FACTORS OF 10551358 */