njvm/prog.asm
2024-01-27 19:33:56 +00:00

8302 lines
68 KiB
NASM

//
// version
//
.vers 8
//
// execution framework
//
__start:
call _main
call _exit
__stop:
jmp __stop
//
// Integer readInteger()
//
_readInteger:
asf 0
rdint
popr
rsf
ret
//
// void writeInteger(Integer)
//
_writeInteger:
asf 0
pushl -3
wrint
rsf
ret
//
// Character readCharacter()
//
_readCharacter:
asf 0
rdchr
popr
rsf
ret
//
// void writeCharacter(Character)
//
_writeCharacter:
asf 0
pushl -3
wrchr
rsf
ret
//
// Integer char2int(Character)
//
_char2int:
asf 0
pushl -3
popr
rsf
ret
//
// Character int2char(Integer)
//
_int2char:
asf 0
pushl -3
popr
rsf
ret
//
// void exit()
//
_exit:
asf 0
halt
rsf
ret
//
// void writeString(String)
//
_writeString:
asf 1
pushc 0
popl 0
jmp _writeString_L2
_writeString_L1:
pushl -3
pushl 0
getfa
call _writeCharacter
drop 1
pushl 0
pushc 1
add
popl 0
_writeString_L2:
pushl 0
pushl -3
getsz
lt
brt _writeString_L1
rsf
ret
//
// record { Integer value; List next; } addToList(Integer, record { Integer value; List next; })
//
_addToList:
asf 1
new 2
popl 0
pushl 0
pushl -4
putf 0
pushl 0
pushl -3
putf 1
pushl 0
popr
jmp __0
__0:
rsf
ret
//
// record { Integer value; List next; } sortList(record { Integer value; List next; })
//
_sortList:
asf 3
pushn
popl 0
jmp __3
__2:
pushl -3
popl 1
pushl -3
getf 1
popl -3
pushl 0
pushn
refeq
dup
brt __7
drop 1
pushl 1
getf 0
pushl 0
getf 0
lt
__7:
brf __5
pushl 1
pushl 0
putf 1
pushl 1
popl 0
jmp __6
__5:
pushl 0
popl 2
jmp __9
__8:
pushl 2
getf 1
popl 2
__9:
pushl 2
getf 1
pushn
refne
dup
brf __11
drop 1
pushl 1
getf 0
pushl 2
getf 1
getf 0
ge
__11:
brt __8
__10:
pushl 1
pushl 2
getf 1
putf 1
pushl 2
pushl 1
putf 1
__6:
__3:
pushl -3
pushn
refne
brt __2
__4:
pushl 0
popr
jmp __1
__1:
rsf
ret
//
// void showList(record { Integer value; List next; })
//
_showList:
asf 0
pushl -3
pushn
refeq
brf __13
pushc 1
newa
dup
pushc 0
pushc 49
putfa
call _writeString
drop 1
jmp __14
__13:
jmp __16
__15:
pushl -3
getf 0
call _writeInteger
drop 1
pushl -3
getf 1
popl -3
pushl -3
pushn
refeq
brf __18
jmp __17
__18:
pushc 3
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 42
putfa
dup
pushc 2
pushc 32
putfa
call _writeString
drop 1
__16:
pushc 1
brt __15
__17:
__14:
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__12:
rsf
ret
//
// Integer evalList(record { Integer value; List next; })
//
_evalList:
asf 1
pushc 1
popl 0
jmp __21
__20:
pushl 0
pushl -3
getf 0
mul
popl 0
pushl -3
getf 1
popl -3
__21:
pushl -3
pushn
refne
brt __20
__22:
pushl 0
popr
jmp __19
__19:
rsf
ret
//
// record { Integer value; List next; } fuseLists(record { Integer value; List next; }, record { Integer value; List next; })
//
_fuseLists:
asf 1
jmp __25
__24:
pushl -4
popl 0
pushl -4
getf 1
popl -4
pushl 0
pushl -3
putf 1
pushl 0
popl -3
__25:
pushl -4
pushn
refne
brt __24
__26:
pushl -3
popr
jmp __23
__23:
rsf
ret
//
// Integer computeTarget(Integer)
//
_computeTarget:
asf 2
pushc 1
popl 0
pushc 0
popl 1
jmp __29
__28:
pushl 0
pushc 10
mul
popl 0
pushl 1
pushc 1
add
popl 1
__29:
pushl 1
pushl -3
lt
brt __28
__30:
pushl 0
pushc 1
add
popl 0
pushl 0
popr
jmp __27
__27:
rsf
ret
//
// void testComputeTarget()
//
_testComputeTarget:
asf 0
pushc 16
newa
dup
pushc 0
pushc 99
putfa
dup
pushc 1
pushc 111
putfa
dup
pushc 2
pushc 109
putfa
dup
pushc 3
pushc 112
putfa
dup
pushc 4
pushc 117
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 101
putfa
dup
pushc 7
pushc 84
putfa
dup
pushc 8
pushc 97
putfa
dup
pushc 9
pushc 114
putfa
dup
pushc 10
pushc 103
putfa
dup
pushc 11
pushc 101
putfa
dup
pushc 12
pushc 116
putfa
dup
pushc 13
pushc 40
putfa
dup
pushc 14
pushc 41
putfa
dup
pushc 15
pushc 10
putfa
call _writeString
drop 1
pushc 16
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 45
putfa
dup
pushc 13
pushc 45
putfa
dup
pushc 14
pushc 45
putfa
dup
pushc 15
pushc 10
putfa
call _writeString
drop 1
pushc 12
newa
dup
pushc 0
pushc 116
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 114
putfa
dup
pushc 3
pushc 103
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 40
putfa
dup
pushc 7
pushc 49
putfa
dup
pushc 8
pushc 41
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 61
putfa
dup
pushc 11
pushc 32
putfa
call _writeString
drop 1
pushc 1
call _computeTarget
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 12
newa
dup
pushc 0
pushc 116
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 114
putfa
dup
pushc 3
pushc 103
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 40
putfa
dup
pushc 7
pushc 50
putfa
dup
pushc 8
pushc 41
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 61
putfa
dup
pushc 11
pushc 32
putfa
call _writeString
drop 1
pushc 2
call _computeTarget
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 12
newa
dup
pushc 0
pushc 116
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 114
putfa
dup
pushc 3
pushc 103
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 40
putfa
dup
pushc 7
pushc 51
putfa
dup
pushc 8
pushc 41
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 61
putfa
dup
pushc 11
pushc 32
putfa
call _writeString
drop 1
pushc 3
call _computeTarget
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 12
newa
dup
pushc 0
pushc 116
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 114
putfa
dup
pushc 3
pushc 103
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 40
putfa
dup
pushc 7
pushc 52
putfa
dup
pushc 8
pushc 41
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 61
putfa
dup
pushc 11
pushc 32
putfa
call _writeString
drop 1
pushc 4
call _computeTarget
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__31:
rsf
ret
//
// void showSmallPrimes()
//
_showSmallPrimes:
asf 2
pushc 0
popl 0
pushc 0
popl 1
jmp __34
__33:
pushg 1
pushl 0
getfa
call _writeInteger
drop 1
pushc 2
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 32
putfa
call _writeString
drop 1
pushl 1
pushc 1
add
popl 1
pushl 1
pushc 8
eq
brf __36
pushc 0
popl 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__36:
pushl 0
pushc 1
add
popl 0
__34:
pushl 0
pushg 2
lt
brt __33
__35:
pushl 1
pushc 0
ne
brf __37
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__37:
__32:
rsf
ret
//
// void enterSmallPrime(Integer)
//
_enterSmallPrime:
asf 3
pushg 1
getsz
pushg 2
eq
brf __39
pushc 2
pushg 2
mul
popl 0
pushl 0
newa
popl 1
pushc 0
popl 2
jmp __41
__40:
pushl 1
pushl 2
pushg 1
pushl 2
getfa
putfa
pushl 2
pushc 1
add
popl 2
__41:
pushl 2
pushg 2
lt
brt __40
__42:
pushl 1
popg 1
__39:
pushg 1
pushg 2
pushl -3
putfa
pushg 2
pushc 1
add
popg 2
__38:
rsf
ret
//
// Boolean isPrime(Integer)
//
_isPrime:
asf 1
pushc 3
popl 0
jmp __45
__44:
pushl -3
pushl 0
mod
pushc 0
eq
brf __47
pushc 0
popr
jmp __43
__47:
pushl 0
pushc 2
add
popl 0
__45:
pushl 0
pushl 0
mul
pushl -3
le
brt __44
__46:
pushc 1
popr
jmp __43
__43:
rsf
ret
//
// void calcSmallPrimes(Integer)
//
_calcSmallPrimes:
asf 1
pushl -3
popg 0
pushc 256
newa
popg 1
pushc 0
popg 2
pushc 2
call _enterSmallPrime
drop 1
pushc 3
call _enterSmallPrime
drop 1
pushc 5
popl 0
jmp __50
__49:
pushl 0
pushg 0
gt
brf __52
jmp __51
__52:
pushl 0
call _isPrime
drop 1
pushr
brf __53
pushl 0
call _enterSmallPrime
drop 1
__53:
pushl 0
pushc 2
add
popl 0
pushl 0
pushg 0
gt
brf __54
jmp __51
__54:
pushl 0
call _isPrime
drop 1
pushr
brf __55
pushl 0
call _enterSmallPrime
drop 1
__55:
pushl 0
pushc 4
add
popl 0
__50:
pushc 1
brt __49
__51:
__48:
rsf
ret
//
// void testCalcSmallPrimes()
//
_testCalcSmallPrimes:
asf 0
pushc 18
newa
dup
pushc 0
pushc 99
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 108
putfa
dup
pushc 3
pushc 99
putfa
dup
pushc 4
pushc 83
putfa
dup
pushc 5
pushc 109
putfa
dup
pushc 6
pushc 97
putfa
dup
pushc 7
pushc 108
putfa
dup
pushc 8
pushc 108
putfa
dup
pushc 9
pushc 80
putfa
dup
pushc 10
pushc 114
putfa
dup
pushc 11
pushc 105
putfa
dup
pushc 12
pushc 109
putfa
dup
pushc 13
pushc 101
putfa
dup
pushc 14
pushc 115
putfa
dup
pushc 15
pushc 40
putfa
dup
pushc 16
pushc 41
putfa
dup
pushc 17
pushc 10
putfa
call _writeString
drop 1
pushc 18
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 45
putfa
dup
pushc 13
pushc 45
putfa
dup
pushc 14
pushc 45
putfa
dup
pushc 15
pushc 45
putfa
dup
pushc 16
pushc 45
putfa
dup
pushc 17
pushc 10
putfa
call _writeString
drop 1
pushc 34
newa
dup
pushc 0
pushc 112
putfa
dup
pushc 1
pushc 114
putfa
dup
pushc 2
pushc 105
putfa
dup
pushc 3
pushc 109
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 115
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 108
putfa
dup
pushc 8
pushc 101
putfa
dup
pushc 9
pushc 115
putfa
dup
pushc 10
pushc 115
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 116
putfa
dup
pushc 13
pushc 104
putfa
dup
pushc 14
pushc 97
putfa
dup
pushc 15
pushc 110
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 111
putfa
dup
pushc 18
pushc 114
putfa
dup
pushc 19
pushc 32
putfa
dup
pushc 20
pushc 101
putfa
dup
pushc 21
pushc 113
putfa
dup
pushc 22
pushc 117
putfa
dup
pushc 23
pushc 97
putfa
dup
pushc 24
pushc 108
putfa
dup
pushc 25
pushc 32
putfa
dup
pushc 26
pushc 116
putfa
dup
pushc 27
pushc 111
putfa
dup
pushc 28
pushc 32
putfa
dup
pushc 29
pushc 49
putfa
dup
pushc 30
pushc 48
putfa
dup
pushc 31
pushc 48
putfa
dup
pushc 32
pushc 58
putfa
dup
pushc 33
pushc 10
putfa
call _writeString
drop 1
pushc 100
call _calcSmallPrimes
drop 1
call _showSmallPrimes
pushc 44
newa
dup
pushc 0
pushc 110
putfa
dup
pushc 1
pushc 117
putfa
dup
pushc 2
pushc 109
putfa
dup
pushc 3
pushc 98
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 114
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 111
putfa
dup
pushc 8
pushc 102
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 112
putfa
dup
pushc 11
pushc 114
putfa
dup
pushc 12
pushc 105
putfa
dup
pushc 13
pushc 109
putfa
dup
pushc 14
pushc 101
putfa
dup
pushc 15
pushc 115
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 108
putfa
dup
pushc 18
pushc 101
putfa
dup
pushc 19
pushc 115
putfa
dup
pushc 20
pushc 115
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 116
putfa
dup
pushc 23
pushc 104
putfa
dup
pushc 24
pushc 97
putfa
dup
pushc 25
pushc 110
putfa
dup
pushc 26
pushc 32
putfa
dup
pushc 27
pushc 111
putfa
dup
pushc 28
pushc 114
putfa
dup
pushc 29
pushc 32
putfa
dup
pushc 30
pushc 101
putfa
dup
pushc 31
pushc 113
putfa
dup
pushc 32
pushc 117
putfa
dup
pushc 33
pushc 97
putfa
dup
pushc 34
pushc 108
putfa
dup
pushc 35
pushc 32
putfa
dup
pushc 36
pushc 116
putfa
dup
pushc 37
pushc 111
putfa
dup
pushc 38
pushc 32
putfa
dup
pushc 39
pushc 49
putfa
dup
pushc 40
pushc 48
putfa
dup
pushc 41
pushc 48
putfa
dup
pushc 42
pushc 58
putfa
dup
pushc 43
pushc 32
putfa
call _writeString
drop 1
pushg 2
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 1000
call _calcSmallPrimes
drop 1
pushc 45
newa
dup
pushc 0
pushc 110
putfa
dup
pushc 1
pushc 117
putfa
dup
pushc 2
pushc 109
putfa
dup
pushc 3
pushc 98
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 114
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 111
putfa
dup
pushc 8
pushc 102
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 112
putfa
dup
pushc 11
pushc 114
putfa
dup
pushc 12
pushc 105
putfa
dup
pushc 13
pushc 109
putfa
dup
pushc 14
pushc 101
putfa
dup
pushc 15
pushc 115
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 108
putfa
dup
pushc 18
pushc 101
putfa
dup
pushc 19
pushc 115
putfa
dup
pushc 20
pushc 115
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 116
putfa
dup
pushc 23
pushc 104
putfa
dup
pushc 24
pushc 97
putfa
dup
pushc 25
pushc 110
putfa
dup
pushc 26
pushc 32
putfa
dup
pushc 27
pushc 111
putfa
dup
pushc 28
pushc 114
putfa
dup
pushc 29
pushc 32
putfa
dup
pushc 30
pushc 101
putfa
dup
pushc 31
pushc 113
putfa
dup
pushc 32
pushc 117
putfa
dup
pushc 33
pushc 97
putfa
dup
pushc 34
pushc 108
putfa
dup
pushc 35
pushc 32
putfa
dup
pushc 36
pushc 116
putfa
dup
pushc 37
pushc 111
putfa
dup
pushc 38
pushc 32
putfa
dup
pushc 39
pushc 49
putfa
dup
pushc 40
pushc 48
putfa
dup
pushc 41
pushc 48
putfa
dup
pushc 42
pushc 48
putfa
dup
pushc 43
pushc 58
putfa
dup
pushc 44
pushc 32
putfa
call _writeString
drop 1
pushg 2
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 10000
call _calcSmallPrimes
drop 1
pushc 46
newa
dup
pushc 0
pushc 110
putfa
dup
pushc 1
pushc 117
putfa
dup
pushc 2
pushc 109
putfa
dup
pushc 3
pushc 98
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 114
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 111
putfa
dup
pushc 8
pushc 102
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 112
putfa
dup
pushc 11
pushc 114
putfa
dup
pushc 12
pushc 105
putfa
dup
pushc 13
pushc 109
putfa
dup
pushc 14
pushc 101
putfa
dup
pushc 15
pushc 115
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 108
putfa
dup
pushc 18
pushc 101
putfa
dup
pushc 19
pushc 115
putfa
dup
pushc 20
pushc 115
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 116
putfa
dup
pushc 23
pushc 104
putfa
dup
pushc 24
pushc 97
putfa
dup
pushc 25
pushc 110
putfa
dup
pushc 26
pushc 32
putfa
dup
pushc 27
pushc 111
putfa
dup
pushc 28
pushc 114
putfa
dup
pushc 29
pushc 32
putfa
dup
pushc 30
pushc 101
putfa
dup
pushc 31
pushc 113
putfa
dup
pushc 32
pushc 117
putfa
dup
pushc 33
pushc 97
putfa
dup
pushc 34
pushc 108
putfa
dup
pushc 35
pushc 32
putfa
dup
pushc 36
pushc 116
putfa
dup
pushc 37
pushc 111
putfa
dup
pushc 38
pushc 32
putfa
dup
pushc 39
pushc 49
putfa
dup
pushc 40
pushc 48
putfa
dup
pushc 41
pushc 48
putfa
dup
pushc 42
pushc 48
putfa
dup
pushc 43
pushc 48
putfa
dup
pushc 44
pushc 58
putfa
dup
pushc 45
pushc 32
putfa
call _writeString
drop 1
pushg 2
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 100000
call _calcSmallPrimes
drop 1
pushc 47
newa
dup
pushc 0
pushc 110
putfa
dup
pushc 1
pushc 117
putfa
dup
pushc 2
pushc 109
putfa
dup
pushc 3
pushc 98
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 114
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 111
putfa
dup
pushc 8
pushc 102
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 112
putfa
dup
pushc 11
pushc 114
putfa
dup
pushc 12
pushc 105
putfa
dup
pushc 13
pushc 109
putfa
dup
pushc 14
pushc 101
putfa
dup
pushc 15
pushc 115
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 108
putfa
dup
pushc 18
pushc 101
putfa
dup
pushc 19
pushc 115
putfa
dup
pushc 20
pushc 115
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 116
putfa
dup
pushc 23
pushc 104
putfa
dup
pushc 24
pushc 97
putfa
dup
pushc 25
pushc 110
putfa
dup
pushc 26
pushc 32
putfa
dup
pushc 27
pushc 111
putfa
dup
pushc 28
pushc 114
putfa
dup
pushc 29
pushc 32
putfa
dup
pushc 30
pushc 101
putfa
dup
pushc 31
pushc 113
putfa
dup
pushc 32
pushc 117
putfa
dup
pushc 33
pushc 97
putfa
dup
pushc 34
pushc 108
putfa
dup
pushc 35
pushc 32
putfa
dup
pushc 36
pushc 116
putfa
dup
pushc 37
pushc 111
putfa
dup
pushc 38
pushc 32
putfa
dup
pushc 39
pushc 49
putfa
dup
pushc 40
pushc 48
putfa
dup
pushc 41
pushc 48
putfa
dup
pushc 42
pushc 48
putfa
dup
pushc 43
pushc 48
putfa
dup
pushc 44
pushc 48
putfa
dup
pushc 45
pushc 58
putfa
dup
pushc 46
pushc 32
putfa
call _writeString
drop 1
pushg 2
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__56:
rsf
ret
//
// Integer smallPrimeFactor(Integer)
//
_smallPrimeFactor:
asf 1
pushc 0
popl 0
jmp __59
__58:
pushl -3
pushg 1
pushl 0
getfa
mod
pushc 0
eq
brf __61
pushg 1
pushl 0
getfa
popr
jmp __57
__61:
pushl 0
pushc 1
add
popl 0
__59:
pushl 0
pushg 2
lt
brt __58
__60:
pushc 0
popr
jmp __57
__57:
rsf
ret
//
// void testSmallPrimeFactor()
//
_testSmallPrimeFactor:
asf 0
pushc 10000
call _calcSmallPrimes
drop 1
pushc 19
newa
dup
pushc 0
pushc 115
putfa
dup
pushc 1
pushc 109
putfa
dup
pushc 2
pushc 97
putfa
dup
pushc 3
pushc 108
putfa
dup
pushc 4
pushc 108
putfa
dup
pushc 5
pushc 80
putfa
dup
pushc 6
pushc 114
putfa
dup
pushc 7
pushc 105
putfa
dup
pushc 8
pushc 109
putfa
dup
pushc 9
pushc 101
putfa
dup
pushc 10
pushc 70
putfa
dup
pushc 11
pushc 97
putfa
dup
pushc 12
pushc 99
putfa
dup
pushc 13
pushc 116
putfa
dup
pushc 14
pushc 111
putfa
dup
pushc 15
pushc 114
putfa
dup
pushc 16
pushc 40
putfa
dup
pushc 17
pushc 41
putfa
dup
pushc 18
pushc 10
putfa
call _writeString
drop 1
pushc 19
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 45
putfa
dup
pushc 13
pushc 45
putfa
dup
pushc 14
pushc 45
putfa
dup
pushc 15
pushc 45
putfa
dup
pushc 16
pushc 45
putfa
dup
pushc 17
pushc 45
putfa
dup
pushc 18
pushc 10
putfa
call _writeString
drop 1
pushc 25
newa
dup
pushc 0
pushc 115
putfa
dup
pushc 1
pushc 109
putfa
dup
pushc 2
pushc 97
putfa
dup
pushc 3
pushc 108
putfa
dup
pushc 4
pushc 108
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 112
putfa
dup
pushc 7
pushc 114
putfa
dup
pushc 8
pushc 105
putfa
dup
pushc 9
pushc 109
putfa
dup
pushc 10
pushc 101
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 102
putfa
dup
pushc 13
pushc 97
putfa
dup
pushc 14
pushc 99
putfa
dup
pushc 15
pushc 116
putfa
dup
pushc 16
pushc 111
putfa
dup
pushc 17
pushc 114
putfa
dup
pushc 18
pushc 32
putfa
dup
pushc 19
pushc 111
putfa
dup
pushc 20
pushc 102
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 50
putfa
dup
pushc 23
pushc 58
putfa
dup
pushc 24
pushc 32
putfa
call _writeString
drop 1
pushc 2
call _smallPrimeFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 27
newa
dup
pushc 0
pushc 115
putfa
dup
pushc 1
pushc 109
putfa
dup
pushc 2
pushc 97
putfa
dup
pushc 3
pushc 108
putfa
dup
pushc 4
pushc 108
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 112
putfa
dup
pushc 7
pushc 114
putfa
dup
pushc 8
pushc 105
putfa
dup
pushc 9
pushc 109
putfa
dup
pushc 10
pushc 101
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 102
putfa
dup
pushc 13
pushc 97
putfa
dup
pushc 14
pushc 99
putfa
dup
pushc 15
pushc 116
putfa
dup
pushc 16
pushc 111
putfa
dup
pushc 17
pushc 114
putfa
dup
pushc 18
pushc 32
putfa
dup
pushc 19
pushc 111
putfa
dup
pushc 20
pushc 102
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 50
putfa
dup
pushc 23
pushc 50
putfa
dup
pushc 24
pushc 50
putfa
dup
pushc 25
pushc 58
putfa
dup
pushc 26
pushc 32
putfa
call _writeString
drop 1
pushc 222
call _smallPrimeFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 32
newa
dup
pushc 0
pushc 115
putfa
dup
pushc 1
pushc 109
putfa
dup
pushc 2
pushc 97
putfa
dup
pushc 3
pushc 108
putfa
dup
pushc 4
pushc 108
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 112
putfa
dup
pushc 7
pushc 114
putfa
dup
pushc 8
pushc 105
putfa
dup
pushc 9
pushc 109
putfa
dup
pushc 10
pushc 101
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 102
putfa
dup
pushc 13
pushc 97
putfa
dup
pushc 14
pushc 99
putfa
dup
pushc 15
pushc 116
putfa
dup
pushc 16
pushc 111
putfa
dup
pushc 17
pushc 114
putfa
dup
pushc 18
pushc 32
putfa
dup
pushc 19
pushc 111
putfa
dup
pushc 20
pushc 102
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 49
putfa
dup
pushc 23
pushc 55
putfa
dup
pushc 24
pushc 42
putfa
dup
pushc 25
pushc 49
putfa
dup
pushc 26
pushc 57
putfa
dup
pushc 27
pushc 42
putfa
dup
pushc 28
pushc 50
putfa
dup
pushc 29
pushc 51
putfa
dup
pushc 30
pushc 58
putfa
dup
pushc 31
pushc 32
putfa
call _writeString
drop 1
pushc 17
pushc 19
mul
pushc 23
mul
call _smallPrimeFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 28
newa
dup
pushc 0
pushc 115
putfa
dup
pushc 1
pushc 109
putfa
dup
pushc 2
pushc 97
putfa
dup
pushc 3
pushc 108
putfa
dup
pushc 4
pushc 108
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 112
putfa
dup
pushc 7
pushc 114
putfa
dup
pushc 8
pushc 105
putfa
dup
pushc 9
pushc 109
putfa
dup
pushc 10
pushc 101
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 102
putfa
dup
pushc 13
pushc 97
putfa
dup
pushc 14
pushc 99
putfa
dup
pushc 15
pushc 116
putfa
dup
pushc 16
pushc 111
putfa
dup
pushc 17
pushc 114
putfa
dup
pushc 18
pushc 32
putfa
dup
pushc 19
pushc 111
putfa
dup
pushc 20
pushc 102
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 55
putfa
dup
pushc 23
pushc 57
putfa
dup
pushc 24
pushc 49
putfa
dup
pushc 25
pushc 57
putfa
dup
pushc 26
pushc 58
putfa
dup
pushc 27
pushc 32
putfa
call _writeString
drop 1
pushc 7919
call _smallPrimeFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 33
newa
dup
pushc 0
pushc 115
putfa
dup
pushc 1
pushc 109
putfa
dup
pushc 2
pushc 97
putfa
dup
pushc 3
pushc 108
putfa
dup
pushc 4
pushc 108
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 112
putfa
dup
pushc 7
pushc 114
putfa
dup
pushc 8
pushc 105
putfa
dup
pushc 9
pushc 109
putfa
dup
pushc 10
pushc 101
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 102
putfa
dup
pushc 13
pushc 97
putfa
dup
pushc 14
pushc 99
putfa
dup
pushc 15
pushc 116
putfa
dup
pushc 16
pushc 111
putfa
dup
pushc 17
pushc 114
putfa
dup
pushc 18
pushc 32
putfa
dup
pushc 19
pushc 111
putfa
dup
pushc 20
pushc 102
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 57
putfa
dup
pushc 23
pushc 56
putfa
dup
pushc 24
pushc 55
putfa
dup
pushc 25
pushc 54
putfa
dup
pushc 26
pushc 53
putfa
dup
pushc 27
pushc 52
putfa
dup
pushc 28
pushc 51
putfa
dup
pushc 29
pushc 50
putfa
dup
pushc 30
pushc 51
putfa
dup
pushc 31
pushc 58
putfa
dup
pushc 32
pushc 32
putfa
call _writeString
drop 1
pushc 987654
pushc 1000
mul
pushc 323
add
call _smallPrimeFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__62:
rsf
ret
//
// Integer powerMod(Integer, Integer, Integer)
//
_powerMod:
asf 1
pushc 1
popl 0
jmp __65
__64:
pushl -4
pushc 2
mod
pushc 0
eq
brf __67
pushl -5
pushl -5
mul
pushl -3
mod
popl -5
pushl -4
pushc 2
div
popl -4
jmp __68
__67:
pushl 0
pushl -5
mul
pushl -3
mod
popl 0
pushl -4
pushc 1
sub
popl -4
__68:
__65:
pushl -4
pushc 0
ne
brt __64
__66:
pushl 0
popr
jmp __63
__63:
rsf
ret
//
// void testPowerMod()
//
_testPowerMod:
asf 0
pushc 11
newa
dup
pushc 0
pushc 112
putfa
dup
pushc 1
pushc 111
putfa
dup
pushc 2
pushc 119
putfa
dup
pushc 3
pushc 101
putfa
dup
pushc 4
pushc 114
putfa
dup
pushc 5
pushc 77
putfa
dup
pushc 6
pushc 111
putfa
dup
pushc 7
pushc 100
putfa
dup
pushc 8
pushc 40
putfa
dup
pushc 9
pushc 41
putfa
dup
pushc 10
pushc 10
putfa
call _writeString
drop 1
pushc 11
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 10
putfa
call _writeString
drop 1
pushc 12
newa
dup
pushc 0
pushc 50
putfa
dup
pushc 1
pushc 94
putfa
dup
pushc 2
pushc 49
putfa
dup
pushc 3
pushc 54
putfa
dup
pushc 4
pushc 32
putfa
dup
pushc 5
pushc 109
putfa
dup
pushc 6
pushc 111
putfa
dup
pushc 7
pushc 100
putfa
dup
pushc 8
pushc 32
putfa
dup
pushc 9
pushc 55
putfa
dup
pushc 10
pushc 58
putfa
dup
pushc 11
pushc 32
putfa
call _writeString
drop 1
pushc 2
pushc 16
pushc 7
call _powerMod
drop 3
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 13
newa
dup
pushc 0
pushc 51
putfa
dup
pushc 1
pushc 94
putfa
dup
pushc 2
pushc 49
putfa
dup
pushc 3
pushc 48
putfa
dup
pushc 4
pushc 32
putfa
dup
pushc 5
pushc 109
putfa
dup
pushc 6
pushc 111
putfa
dup
pushc 7
pushc 100
putfa
dup
pushc 8
pushc 32
putfa
dup
pushc 9
pushc 49
putfa
dup
pushc 10
pushc 57
putfa
dup
pushc 11
pushc 58
putfa
dup
pushc 12
pushc 32
putfa
call _writeString
drop 1
pushc 3
pushc 10
pushc 19
call _powerMod
drop 3
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 29
newa
dup
pushc 0
pushc 49
putfa
dup
pushc 1
pushc 50
putfa
dup
pushc 2
pushc 51
putfa
dup
pushc 3
pushc 94
putfa
dup
pushc 4
pushc 57
putfa
dup
pushc 5
pushc 56
putfa
dup
pushc 6
pushc 55
putfa
dup
pushc 7
pushc 54
putfa
dup
pushc 8
pushc 53
putfa
dup
pushc 9
pushc 52
putfa
dup
pushc 10
pushc 51
putfa
dup
pushc 11
pushc 50
putfa
dup
pushc 12
pushc 51
putfa
dup
pushc 13
pushc 32
putfa
dup
pushc 14
pushc 109
putfa
dup
pushc 15
pushc 111
putfa
dup
pushc 16
pushc 100
putfa
dup
pushc 17
pushc 32
putfa
dup
pushc 18
pushc 57
putfa
dup
pushc 19
pushc 56
putfa
dup
pushc 20
pushc 55
putfa
dup
pushc 21
pushc 54
putfa
dup
pushc 22
pushc 53
putfa
dup
pushc 23
pushc 52
putfa
dup
pushc 24
pushc 51
putfa
dup
pushc 25
pushc 50
putfa
dup
pushc 26
pushc 51
putfa
dup
pushc 27
pushc 58
putfa
dup
pushc 28
pushc 32
putfa
call _writeString
drop 1
pushc 123
pushc 987654
pushc 1000
mul
pushc 323
add
pushc 987654
pushc 1000
mul
pushc 323
add
call _powerMod
drop 3
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__69:
rsf
ret
//
// Integer GCD(Integer, Integer)
//
_GCD:
asf 1
pushl -4
pushc 0
lt
brf __71
pushc 0
pushl -4
sub
popl -4
__71:
pushl -3
pushc 0
lt
brf __72
pushc 0
pushl -3
sub
popl -3
__72:
jmp __74
__73:
pushl -4
pushl -3
mod
popl 0
pushl -3
popl -4
pushl 0
popl -3
__74:
pushl -3
pushc 0
ne
brt __73
__75:
pushl -4
popr
jmp __70
__70:
rsf
ret
//
// void testGCD()
//
_testGCD:
asf 0
pushc 6
newa
dup
pushc 0
pushc 71
putfa
dup
pushc 1
pushc 67
putfa
dup
pushc 2
pushc 68
putfa
dup
pushc 3
pushc 40
putfa
dup
pushc 4
pushc 41
putfa
dup
pushc 5
pushc 10
putfa
call _writeString
drop 1
pushc 6
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 10
putfa
call _writeString
drop 1
pushc 32
newa
dup
pushc 0
pushc 71
putfa
dup
pushc 1
pushc 67
putfa
dup
pushc 2
pushc 68
putfa
dup
pushc 3
pushc 40
putfa
dup
pushc 4
pushc 51
putfa
dup
pushc 5
pushc 42
putfa
dup
pushc 6
pushc 53
putfa
dup
pushc 7
pushc 42
putfa
dup
pushc 8
pushc 53
putfa
dup
pushc 9
pushc 42
putfa
dup
pushc 10
pushc 49
putfa
dup
pushc 11
pushc 49
putfa
dup
pushc 12
pushc 42
putfa
dup
pushc 13
pushc 51
putfa
dup
pushc 14
pushc 55
putfa
dup
pushc 15
pushc 44
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 50
putfa
dup
pushc 18
pushc 42
putfa
dup
pushc 19
pushc 50
putfa
dup
pushc 20
pushc 42
putfa
dup
pushc 21
pushc 53
putfa
dup
pushc 22
pushc 42
putfa
dup
pushc 23
pushc 51
putfa
dup
pushc 24
pushc 55
putfa
dup
pushc 25
pushc 42
putfa
dup
pushc 26
pushc 53
putfa
dup
pushc 27
pushc 51
putfa
dup
pushc 28
pushc 41
putfa
dup
pushc 29
pushc 32
putfa
dup
pushc 30
pushc 61
putfa
dup
pushc 31
pushc 32
putfa
call _writeString
drop 1
pushc 3
pushc 5
mul
pushc 5
mul
pushc 11
mul
pushc 37
mul
pushc 2
pushc 2
mul
pushc 5
mul
pushc 37
mul
pushc 53
mul
call _GCD
drop 2
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__76:
rsf
ret
//
// Boolean isComposite(Integer)
//
_isComposite:
asf 6
pushl -3
pushc 1
sub
popl 0
pushc 0
popl 1
jmp __79
__78:
pushl 0
pushc 2
div
popl 0
pushl 1
pushc 1
add
popl 1
__79:
pushl 0
pushc 2
mod
pushc 0
eq
brt __78
__80:
pushc 0
popl 2
jmp __82
__81:
pushg 1
pushl 2
getfa
popl 3
pushl 3
pushl -3
ge
brf __84
jmp __83
__84:
pushc 0
popl 4
pushl 3
pushl 0
pushl -3
call _powerMod
drop 3
pushr
popl 5
pushl 5
pushc 1
ne
brf __85
jmp __87
__86:
pushl 5
pushl 5
mul
pushl -3
mod
popl 5
pushl 4
pushc 1
add
popl 4
__87:
pushl 5
pushc 1
ne
dup
brf __90
drop 1
pushl 5
pushl -3
pushc 1
sub
ne
__90:
dup
brf __89
drop 1
pushl 4
pushl 1
pushc 2
sub
le
__89:
brt __86
__88:
pushl 5
pushl -3
pushc 1
sub
ne
brf __91
pushc 1
popr
jmp __77
__91:
__85:
pushl 2
pushc 1
add
popl 2
__82:
pushl 2
pushc 20
lt
brt __81
__83:
pushc 0
popr
jmp __77
__77:
rsf
ret
//
// void testIsComposite()
//
_testIsComposite:
asf 2
pushc 14
newa
dup
pushc 0
pushc 105
putfa
dup
pushc 1
pushc 115
putfa
dup
pushc 2
pushc 67
putfa
dup
pushc 3
pushc 111
putfa
dup
pushc 4
pushc 109
putfa
dup
pushc 5
pushc 112
putfa
dup
pushc 6
pushc 111
putfa
dup
pushc 7
pushc 115
putfa
dup
pushc 8
pushc 105
putfa
dup
pushc 9
pushc 116
putfa
dup
pushc 10
pushc 101
putfa
dup
pushc 11
pushc 40
putfa
dup
pushc 12
pushc 41
putfa
dup
pushc 13
pushc 10
putfa
call _writeString
drop 1
pushc 14
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 45
putfa
dup
pushc 13
pushc 10
putfa
call _writeString
drop 1
pushc 49
newa
dup
pushc 0
pushc 111
putfa
dup
pushc 1
pushc 100
putfa
dup
pushc 2
pushc 100
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 110
putfa
dup
pushc 5
pushc 117
putfa
dup
pushc 6
pushc 109
putfa
dup
pushc 7
pushc 98
putfa
dup
pushc 8
pushc 101
putfa
dup
pushc 9
pushc 114
putfa
dup
pushc 10
pushc 115
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 105
putfa
dup
pushc 13
pushc 110
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 91
putfa
dup
pushc 16
pushc 51
putfa
dup
pushc 17
pushc 46
putfa
dup
pushc 18
pushc 46
putfa
dup
pushc 19
pushc 57
putfa
dup
pushc 20
pushc 57
putfa
dup
pushc 21
pushc 93
putfa
dup
pushc 22
pushc 32
putfa
dup
pushc 23
pushc 119
putfa
dup
pushc 24
pushc 104
putfa
dup
pushc 25
pushc 105
putfa
dup
pushc 26
pushc 99
putfa
dup
pushc 27
pushc 104
putfa
dup
pushc 28
pushc 32
putfa
dup
pushc 29
pushc 97
putfa
dup
pushc 30
pushc 114
putfa
dup
pushc 31
pushc 101
putfa
dup
pushc 32
pushc 32
putfa
dup
pushc 33
pushc 112
putfa
dup
pushc 34
pushc 114
putfa
dup
pushc 35
pushc 111
putfa
dup
pushc 36
pushc 98
putfa
dup
pushc 37
pushc 97
putfa
dup
pushc 38
pushc 98
putfa
dup
pushc 39
pushc 108
putfa
dup
pushc 40
pushc 121
putfa
dup
pushc 41
pushc 32
putfa
dup
pushc 42
pushc 112
putfa
dup
pushc 43
pushc 114
putfa
dup
pushc 44
pushc 105
putfa
dup
pushc 45
pushc 109
putfa
dup
pushc 46
pushc 101
putfa
dup
pushc 47
pushc 58
putfa
dup
pushc 48
pushc 10
putfa
call _writeString
drop 1
pushc 3
popl 0
pushc 0
popl 1
jmp __94
__93:
pushc 1
pushl 0
call _isComposite
drop 1
pushr
sub
brf __96
pushl 0
call _writeInteger
drop 1
pushc 2
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 32
putfa
call _writeString
drop 1
pushl 1
pushc 1
add
popl 1
pushl 1
pushc 8
eq
brf __97
pushc 0
popl 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__97:
__96:
pushl 0
pushc 2
add
popl 0
__94:
pushl 0
pushc 100
lt
brt __93
__95:
pushl 1
pushc 0
ne
brf __98
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__98:
pushc 123456
pushc 10
mul
pushc 7
add
popl 0
jmp __100
__99:
pushl 0
call _writeInteger
drop 1
pushc 4
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 105
putfa
dup
pushc 2
pushc 115
putfa
dup
pushc 3
pushc 32
putfa
call _writeString
drop 1
pushl 0
call _isComposite
drop 1
pushr
brf __102
pushc 21
newa
dup
pushc 0
pushc 100
putfa
dup
pushc 1
pushc 101
putfa
dup
pushc 2
pushc 102
putfa
dup
pushc 3
pushc 105
putfa
dup
pushc 4
pushc 110
putfa
dup
pushc 5
pushc 105
putfa
dup
pushc 6
pushc 116
putfa
dup
pushc 7
pushc 101
putfa
dup
pushc 8
pushc 108
putfa
dup
pushc 9
pushc 121
putfa
dup
pushc 10
pushc 32
putfa
dup
pushc 11
pushc 99
putfa
dup
pushc 12
pushc 111
putfa
dup
pushc 13
pushc 109
putfa
dup
pushc 14
pushc 112
putfa
dup
pushc 15
pushc 111
putfa
dup
pushc 16
pushc 115
putfa
dup
pushc 17
pushc 105
putfa
dup
pushc 18
pushc 116
putfa
dup
pushc 19
pushc 101
putfa
dup
pushc 20
pushc 10
putfa
call _writeString
drop 1
jmp __103
__102:
pushc 15
newa
dup
pushc 0
pushc 112
putfa
dup
pushc 1
pushc 114
putfa
dup
pushc 2
pushc 111
putfa
dup
pushc 3
pushc 98
putfa
dup
pushc 4
pushc 97
putfa
dup
pushc 5
pushc 98
putfa
dup
pushc 6
pushc 108
putfa
dup
pushc 7
pushc 121
putfa
dup
pushc 8
pushc 32
putfa
dup
pushc 9
pushc 112
putfa
dup
pushc 10
pushc 114
putfa
dup
pushc 11
pushc 105
putfa
dup
pushc 12
pushc 109
putfa
dup
pushc 13
pushc 101
putfa
dup
pushc 14
pushc 10
putfa
call _writeString
drop 1
__103:
pushl 0
pushc 2
add
popl 0
__100:
pushl 0
pushc 123460
pushc 10
mul
pushc 7
add
lt
brt __99
__101:
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__92:
rsf
ret
//
// Boolean provePrime(Integer)
//
_provePrime:
asf 0
pushc 0
popr
jmp __104
__104:
rsf
ret
//
// void testProvePrime()
//
_testProvePrime:
asf 0
pushc 13
newa
dup
pushc 0
pushc 112
putfa
dup
pushc 1
pushc 114
putfa
dup
pushc 2
pushc 111
putfa
dup
pushc 3
pushc 118
putfa
dup
pushc 4
pushc 101
putfa
dup
pushc 5
pushc 80
putfa
dup
pushc 6
pushc 114
putfa
dup
pushc 7
pushc 105
putfa
dup
pushc 8
pushc 109
putfa
dup
pushc 9
pushc 101
putfa
dup
pushc 10
pushc 40
putfa
dup
pushc 11
pushc 41
putfa
dup
pushc 12
pushc 10
putfa
call _writeString
drop 1
pushc 13
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 10
putfa
call _writeString
drop 1
pushc 22
newa
dup
pushc 0
pushc 60
putfa
dup
pushc 1
pushc 110
putfa
dup
pushc 2
pushc 111
putfa
dup
pushc 3
pushc 116
putfa
dup
pushc 4
pushc 32
putfa
dup
pushc 5
pushc 105
putfa
dup
pushc 6
pushc 109
putfa
dup
pushc 7
pushc 112
putfa
dup
pushc 8
pushc 108
putfa
dup
pushc 9
pushc 101
putfa
dup
pushc 10
pushc 109
putfa
dup
pushc 11
pushc 101
putfa
dup
pushc 12
pushc 110
putfa
dup
pushc 13
pushc 116
putfa
dup
pushc 14
pushc 101
putfa
dup
pushc 15
pushc 100
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 121
putfa
dup
pushc 18
pushc 101
putfa
dup
pushc 19
pushc 116
putfa
dup
pushc 20
pushc 62
putfa
dup
pushc 21
pushc 10
putfa
call _writeString
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__105:
rsf
ret
//
// Integer findFactor1(Integer)
//
_findFactor1:
asf 9
pushc 2
popl 0
pushc 2
popl 1
pushc 2
popl 2
pushc 1
popl 3
pushc 1
popl 4
pushc 1
popl 5
pushc 0
popl 6
jmp __108
__107:
pushl 1
pushl 1
mul
pushc 1
add
pushl -3
mod
popl 1
pushl 5
pushl 2
pushl 1
sub
mul
pushl -3
mod
popl 5
pushl 6
pushc 1
add
popl 6
pushl 6
pushc 20
eq
brf __110
pushl 5
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
gt
brf __111
jmp __109
__111:
pushl 1
popl 0
pushc 0
popl 6
__110:
pushl 3
pushc 1
sub
popl 3
pushl 3
pushc 0
eq
brf __112
pushl 5
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
gt
brf __113
jmp __109
__113:
pushl 1
popl 2
pushl 4
popl 3
pushc 2
pushl 4
mul
popl 4
pushc 0
popl 8
jmp __115
__114:
pushl 1
pushl 1
mul
pushc 1
add
pushl -3
mod
popl 1
pushl 8
pushc 1
add
popl 8
__115:
pushl 8
pushl 3
lt
brt __114
__116:
pushl 1
popl 0
pushc 0
popl 6
__112:
__108:
pushc 1
brt __107
__109:
__117:
pushl 0
pushl 0
mul
pushc 1
add
pushl -3
mod
popl 0
pushl 2
pushl 0
sub
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
eq
brt __117
__118:
pushl 7
pushl -3
lt
brf __119
pushl 7
popr
jmp __106
jmp __120
__119:
pushc 0
popr
jmp __106
__120:
__106:
rsf
ret
//
// Integer findFactor2(Integer)
//
_findFactor2:
asf 9
pushc 2
popl 0
pushc 2
popl 1
pushc 2
popl 2
pushc 1
popl 3
pushc 1
popl 4
pushc 1
popl 5
pushc 0
popl 6
jmp __123
__122:
pushl 1
pushl 1
mul
pushc 1
sub
pushl -3
mod
popl 1
pushl 5
pushl 2
pushl 1
sub
mul
pushl -3
mod
popl 5
pushl 6
pushc 1
add
popl 6
pushl 6
pushc 20
eq
brf __125
pushl 5
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
gt
brf __126
jmp __124
__126:
pushl 1
popl 0
pushc 0
popl 6
__125:
pushl 3
pushc 1
sub
popl 3
pushl 3
pushc 0
eq
brf __127
pushl 5
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
gt
brf __128
jmp __124
__128:
pushl 1
popl 2
pushl 4
popl 3
pushc 2
pushl 4
mul
popl 4
pushc 0
popl 8
jmp __130
__129:
pushl 1
pushl 1
mul
pushc 1
sub
pushl -3
mod
popl 1
pushl 8
pushc 1
add
popl 8
__130:
pushl 8
pushl 3
lt
brt __129
__131:
pushl 1
popl 0
pushc 0
popl 6
__127:
__123:
pushc 1
brt __122
__124:
__132:
pushl 0
pushl 0
mul
pushc 1
sub
pushl -3
mod
popl 0
pushl 2
pushl 0
sub
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
eq
brt __132
__133:
pushl 7
pushl -3
lt
brf __134
pushl 7
popr
jmp __121
jmp __135
__134:
pushc 0
popr
jmp __121
__135:
__121:
rsf
ret
//
// Integer findFactor3(Integer)
//
_findFactor3:
asf 9
pushc 2
popl 0
pushc 2
popl 1
pushc 2
popl 2
pushc 1
popl 3
pushc 1
popl 4
pushc 1
popl 5
pushc 0
popl 6
jmp __138
__137:
pushl 1
pushl 1
mul
pushc 3
add
pushl -3
mod
popl 1
pushl 5
pushl 2
pushl 1
sub
mul
pushl -3
mod
popl 5
pushl 6
pushc 1
add
popl 6
pushl 6
pushc 20
eq
brf __140
pushl 5
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
gt
brf __141
jmp __139
__141:
pushl 1
popl 0
pushc 0
popl 6
__140:
pushl 3
pushc 1
sub
popl 3
pushl 3
pushc 0
eq
brf __142
pushl 5
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
gt
brf __143
jmp __139
__143:
pushl 1
popl 2
pushl 4
popl 3
pushc 2
pushl 4
mul
popl 4
pushc 0
popl 8
jmp __145
__144:
pushl 1
pushl 1
mul
pushc 3
add
pushl -3
mod
popl 1
pushl 8
pushc 1
add
popl 8
__145:
pushl 8
pushl 3
lt
brt __144
__146:
pushl 1
popl 0
pushc 0
popl 6
__142:
__138:
pushc 1
brt __137
__139:
__147:
pushl 0
pushl 0
mul
pushc 3
add
pushl -3
mod
popl 0
pushl 2
pushl 0
sub
pushl -3
call _GCD
drop 2
pushr
popl 7
pushl 7
pushc 1
eq
brt __147
__148:
pushl 7
pushl -3
lt
brf __149
pushl 7
popr
jmp __136
jmp __150
__149:
pushc 0
popr
jmp __136
__150:
__136:
rsf
ret
//
// Integer findFactor(Integer)
//
_findFactor:
asf 1
pushl -3
call _findFactor1
drop 1
pushr
popl 0
pushl 0
pushc 0
ne
brf __152
pushl 0
popr
jmp __151
__152:
pushl -3
call _findFactor2
drop 1
pushr
popl 0
pushl 0
pushc 0
ne
brf __153
pushl 0
popr
jmp __151
__153:
pushl -3
call _findFactor3
drop 1
pushr
popl 0
pushl 0
popr
jmp __151
__151:
rsf
ret
//
// void testFindFactor()
//
_testFindFactor:
asf 0
pushc 13
newa
dup
pushc 0
pushc 102
putfa
dup
pushc 1
pushc 105
putfa
dup
pushc 2
pushc 110
putfa
dup
pushc 3
pushc 100
putfa
dup
pushc 4
pushc 70
putfa
dup
pushc 5
pushc 97
putfa
dup
pushc 6
pushc 99
putfa
dup
pushc 7
pushc 116
putfa
dup
pushc 8
pushc 111
putfa
dup
pushc 9
pushc 114
putfa
dup
pushc 10
pushc 40
putfa
dup
pushc 11
pushc 41
putfa
dup
pushc 12
pushc 10
putfa
call _writeString
drop 1
pushc 13
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 10
putfa
call _writeString
drop 1
pushc 8
newa
dup
pushc 0
pushc 53
putfa
dup
pushc 1
pushc 42
putfa
dup
pushc 2
pushc 53
putfa
dup
pushc 3
pushc 42
putfa
dup
pushc 4
pushc 53
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 61
putfa
dup
pushc 7
pushc 32
putfa
call _writeString
drop 1
pushc 5
pushc 5
mul
pushc 5
mul
call _writeInteger
drop 1
pushc 18
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 105
putfa
dup
pushc 2
pushc 115
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 97
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 109
putfa
dup
pushc 7
pushc 117
putfa
dup
pushc 8
pushc 108
putfa
dup
pushc 9
pushc 116
putfa
dup
pushc 10
pushc 105
putfa
dup
pushc 11
pushc 112
putfa
dup
pushc 12
pushc 108
putfa
dup
pushc 13
pushc 101
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 111
putfa
dup
pushc 16
pushc 102
putfa
dup
pushc 17
pushc 32
putfa
call _writeString
drop 1
pushc 5
pushc 5
mul
pushc 5
mul
call _findFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 17
newa
dup
pushc 0
pushc 52
putfa
dup
pushc 1
pushc 52
putfa
dup
pushc 2
pushc 50
putfa
dup
pushc 3
pushc 49
putfa
dup
pushc 4
pushc 42
putfa
dup
pushc 5
pushc 53
putfa
dup
pushc 6
pushc 55
putfa
dup
pushc 7
pushc 52
putfa
dup
pushc 8
pushc 51
putfa
dup
pushc 9
pushc 42
putfa
dup
pushc 10
pushc 55
putfa
dup
pushc 11
pushc 54
putfa
dup
pushc 12
pushc 57
putfa
dup
pushc 13
pushc 57
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 61
putfa
dup
pushc 16
pushc 32
putfa
call _writeString
drop 1
pushc 4421
pushc 5743
mul
pushc 7699
mul
call _writeInteger
drop 1
pushc 18
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 105
putfa
dup
pushc 2
pushc 115
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 97
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 109
putfa
dup
pushc 7
pushc 117
putfa
dup
pushc 8
pushc 108
putfa
dup
pushc 9
pushc 116
putfa
dup
pushc 10
pushc 105
putfa
dup
pushc 11
pushc 112
putfa
dup
pushc 12
pushc 108
putfa
dup
pushc 13
pushc 101
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 111
putfa
dup
pushc 16
pushc 102
putfa
dup
pushc 17
pushc 32
putfa
call _writeString
drop 1
pushc 4421
pushc 5743
mul
pushc 7699
mul
call _findFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 999900
pushc 1000000
mul
pushc 9999
add
pushc 10000
mul
pushc 1
add
call _writeInteger
drop 1
pushc 18
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 105
putfa
dup
pushc 2
pushc 115
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 97
putfa
dup
pushc 5
pushc 32
putfa
dup
pushc 6
pushc 109
putfa
dup
pushc 7
pushc 117
putfa
dup
pushc 8
pushc 108
putfa
dup
pushc 9
pushc 116
putfa
dup
pushc 10
pushc 105
putfa
dup
pushc 11
pushc 112
putfa
dup
pushc 12
pushc 108
putfa
dup
pushc 13
pushc 101
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 111
putfa
dup
pushc 16
pushc 102
putfa
dup
pushc 17
pushc 32
putfa
call _writeString
drop 1
pushc 999900
pushc 1000000
mul
pushc 9999
add
pushc 10000
mul
pushc 1
add
call _findFactor
drop 1
pushr
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__154:
rsf
ret
//
// record { Integer value; List next; } factorize(Integer, Boolean)
//
_factorize:
asf 5
pushl -3
brf __156
pushc 10
newa
dup
pushc 0
pushc 102
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 99
putfa
dup
pushc 3
pushc 116
putfa
dup
pushc 4
pushc 111
putfa
dup
pushc 5
pushc 114
putfa
dup
pushc 6
pushc 105
putfa
dup
pushc 7
pushc 122
putfa
dup
pushc 8
pushc 101
putfa
dup
pushc 9
pushc 40
putfa
call _writeString
drop 1
pushl -4
call _writeInteger
drop 1
pushc 2
newa
dup
pushc 0
pushc 41
putfa
dup
pushc 1
pushc 10
putfa
call _writeString
drop 1
__156:
pushn
popl 0
jmp __158
__157:
pushl -4
call _smallPrimeFactor
drop 1
pushr
popl 1
pushl 1
pushc 0
eq
brf __160
pushl -4
pushg 0
pushg 0
mul
lt
brf __161
pushl -4
popl 1
jmp __162
__161:
jmp __159
__162:
__160:
pushl -3
brf __163
pushc 28
newa
dup
pushc 0
pushc 100
putfa
dup
pushc 1
pushc 101
putfa
dup
pushc 2
pushc 116
putfa
dup
pushc 3
pushc 101
putfa
dup
pushc 4
pushc 99
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 101
putfa
dup
pushc 7
pushc 100
putfa
dup
pushc 8
pushc 32
putfa
dup
pushc 9
pushc 115
putfa
dup
pushc 10
pushc 109
putfa
dup
pushc 11
pushc 97
putfa
dup
pushc 12
pushc 108
putfa
dup
pushc 13
pushc 108
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 112
putfa
dup
pushc 16
pushc 114
putfa
dup
pushc 17
pushc 105
putfa
dup
pushc 18
pushc 109
putfa
dup
pushc 19
pushc 101
putfa
dup
pushc 20
pushc 32
putfa
dup
pushc 21
pushc 102
putfa
dup
pushc 22
pushc 97
putfa
dup
pushc 23
pushc 99
putfa
dup
pushc 24
pushc 116
putfa
dup
pushc 25
pushc 111
putfa
dup
pushc 26
pushc 114
putfa
dup
pushc 27
pushc 32
putfa
call _writeString
drop 1
pushl 1
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__163:
pushl 1
pushl 0
call _addToList
drop 2
pushr
popl 0
pushl -4
pushl 1
div
popl -4
__158:
pushl -4
pushc 1
gt
brt __157
__159:
pushl -4
pushc 1
eq
brf __164
pushl -3
brf __165
pushc 42
newa
dup
pushc 0
pushc 116
putfa
dup
pushc 1
pushc 104
putfa
dup
pushc 2
pushc 101
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 110
putfa
dup
pushc 5
pushc 117
putfa
dup
pushc 6
pushc 109
putfa
dup
pushc 7
pushc 98
putfa
dup
pushc 8
pushc 101
putfa
dup
pushc 9
pushc 114
putfa
dup
pushc 10
pushc 32
putfa
dup
pushc 11
pushc 104
putfa
dup
pushc 12
pushc 97
putfa
dup
pushc 13
pushc 115
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 98
putfa
dup
pushc 16
pushc 101
putfa
dup
pushc 17
pushc 101
putfa
dup
pushc 18
pushc 110
putfa
dup
pushc 19
pushc 32
putfa
dup
pushc 20
pushc 99
putfa
dup
pushc 21
pushc 111
putfa
dup
pushc 22
pushc 109
putfa
dup
pushc 23
pushc 112
putfa
dup
pushc 24
pushc 108
putfa
dup
pushc 25
pushc 101
putfa
dup
pushc 26
pushc 116
putfa
dup
pushc 27
pushc 101
putfa
dup
pushc 28
pushc 108
putfa
dup
pushc 29
pushc 121
putfa
dup
pushc 30
pushc 32
putfa
dup
pushc 31
pushc 102
putfa
dup
pushc 32
pushc 97
putfa
dup
pushc 33
pushc 99
putfa
dup
pushc 34
pushc 116
putfa
dup
pushc 35
pushc 111
putfa
dup
pushc 36
pushc 114
putfa
dup
pushc 37
pushc 105
putfa
dup
pushc 38
pushc 122
putfa
dup
pushc 39
pushc 101
putfa
dup
pushc 40
pushc 100
putfa
dup
pushc 41
pushc 10
putfa
call _writeString
drop 1
__165:
pushl 0
popr
jmp __155
__164:
pushl -3
brf __166
pushc 41
newa
dup
pushc 0
pushc 105
putfa
dup
pushc 1
pushc 110
putfa
dup
pushc 2
pushc 116
putfa
dup
pushc 3
pushc 101
putfa
dup
pushc 4
pushc 114
putfa
dup
pushc 5
pushc 105
putfa
dup
pushc 6
pushc 109
putfa
dup
pushc 7
pushc 32
putfa
dup
pushc 8
pushc 114
putfa
dup
pushc 9
pushc 101
putfa
dup
pushc 10
pushc 115
putfa
dup
pushc 11
pushc 117
putfa
dup
pushc 12
pushc 108
putfa
dup
pushc 13
pushc 116
putfa
dup
pushc 14
pushc 58
putfa
dup
pushc 15
pushc 10
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 32
putfa
dup
pushc 18
pushc 32
putfa
dup
pushc 19
pushc 32
putfa
dup
pushc 20
pushc 116
putfa
dup
pushc 21
pushc 104
putfa
dup
pushc 22
pushc 101
putfa
dup
pushc 23
pushc 32
putfa
dup
pushc 24
pushc 114
putfa
dup
pushc 25
pushc 101
putfa
dup
pushc 26
pushc 109
putfa
dup
pushc 27
pushc 97
putfa
dup
pushc 28
pushc 105
putfa
dup
pushc 29
pushc 110
putfa
dup
pushc 30
pushc 105
putfa
dup
pushc 31
pushc 110
putfa
dup
pushc 32
pushc 103
putfa
dup
pushc 33
pushc 32
putfa
dup
pushc 34
pushc 102
putfa
dup
pushc 35
pushc 97
putfa
dup
pushc 36
pushc 99
putfa
dup
pushc 37
pushc 116
putfa
dup
pushc 38
pushc 111
putfa
dup
pushc 39
pushc 114
putfa
dup
pushc 40
pushc 32
putfa
call _writeString
drop 1
pushl -4
call _writeInteger
drop 1
pushc 38
newa
dup
pushc 0
pushc 10
putfa
dup
pushc 1
pushc 32
putfa
dup
pushc 2
pushc 32
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 32
putfa
dup
pushc 5
pushc 100
putfa
dup
pushc 6
pushc 111
putfa
dup
pushc 7
pushc 101
putfa
dup
pushc 8
pushc 115
putfa
dup
pushc 9
pushc 110
putfa
dup
pushc 10
pushc 39
putfa
dup
pushc 11
pushc 116
putfa
dup
pushc 12
pushc 32
putfa
dup
pushc 13
pushc 104
putfa
dup
pushc 14
pushc 97
putfa
dup
pushc 15
pushc 118
putfa
dup
pushc 16
pushc 101
putfa
dup
pushc 17
pushc 32
putfa
dup
pushc 18
pushc 97
putfa
dup
pushc 19
pushc 110
putfa
dup
pushc 20
pushc 121
putfa
dup
pushc 21
pushc 32
putfa
dup
pushc 22
pushc 112
putfa
dup
pushc 23
pushc 114
putfa
dup
pushc 24
pushc 105
putfa
dup
pushc 25
pushc 109
putfa
dup
pushc 26
pushc 101
putfa
dup
pushc 27
pushc 32
putfa
dup
pushc 28
pushc 102
putfa
dup
pushc 29
pushc 97
putfa
dup
pushc 30
pushc 99
putfa
dup
pushc 31
pushc 116
putfa
dup
pushc 32
pushc 111
putfa
dup
pushc 33
pushc 114
putfa
dup
pushc 34
pushc 115
putfa
dup
pushc 35
pushc 32
putfa
dup
pushc 36
pushc 60
putfa
dup
pushc 37
pushc 32
putfa
call _writeString
drop 1
pushg 0
call _writeInteger
drop 1
pushc 5
newa
dup
pushc 0
pushc 10
putfa
dup
pushc 1
pushc 32
putfa
dup
pushc 2
pushc 32
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 32
putfa
call _writeString
drop 1
__166:
pushl -4
call _isComposite
drop 1
pushr
brf __167
pushl -3
brf __169
pushc 28
newa
dup
pushc 0
pushc 98
putfa
dup
pushc 1
pushc 117
putfa
dup
pushc 2
pushc 116
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 105
putfa
dup
pushc 5
pushc 115
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 100
putfa
dup
pushc 8
pushc 101
putfa
dup
pushc 9
pushc 102
putfa
dup
pushc 10
pushc 105
putfa
dup
pushc 11
pushc 110
putfa
dup
pushc 12
pushc 105
putfa
dup
pushc 13
pushc 116
putfa
dup
pushc 14
pushc 101
putfa
dup
pushc 15
pushc 108
putfa
dup
pushc 16
pushc 121
putfa
dup
pushc 17
pushc 32
putfa
dup
pushc 18
pushc 99
putfa
dup
pushc 19
pushc 111
putfa
dup
pushc 20
pushc 109
putfa
dup
pushc 21
pushc 112
putfa
dup
pushc 22
pushc 111
putfa
dup
pushc 23
pushc 115
putfa
dup
pushc 24
pushc 105
putfa
dup
pushc 25
pushc 116
putfa
dup
pushc 26
pushc 101
putfa
dup
pushc 27
pushc 10
putfa
call _writeString
drop 1
__169:
pushl -4
call _findFactor
drop 1
pushr
popl 2
pushl 2
pushc 0
eq
brf __170
pushc 17
newa
dup
pushc 0
pushc 99
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 110
putfa
dup
pushc 3
pushc 110
putfa
dup
pushc 4
pushc 111
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 102
putfa
dup
pushc 8
pushc 97
putfa
dup
pushc 9
pushc 99
putfa
dup
pushc 10
pushc 116
putfa
dup
pushc 11
pushc 111
putfa
dup
pushc 12
pushc 114
putfa
dup
pushc 13
pushc 105
putfa
dup
pushc 14
pushc 122
putfa
dup
pushc 15
pushc 101
putfa
dup
pushc 16
pushc 32
putfa
call _writeString
drop 1
pushl -4
call _writeInteger
drop 1
pushc 12
newa
dup
pushc 0
pushc 44
putfa
dup
pushc 1
pushc 32
putfa
dup
pushc 2
pushc 103
putfa
dup
pushc 3
pushc 105
putfa
dup
pushc 4
pushc 118
putfa
dup
pushc 5
pushc 105
putfa
dup
pushc 6
pushc 110
putfa
dup
pushc 7
pushc 103
putfa
dup
pushc 8
pushc 32
putfa
dup
pushc 9
pushc 117
putfa
dup
pushc 10
pushc 112
putfa
dup
pushc 11
pushc 10
putfa
call _writeString
drop 1
pushl -4
pushl 0
call _addToList
drop 2
pushr
popl 0
jmp __171
__170:
pushl -4
pushl 2
div
popl 3
pushl -3
brf __172
pushc 30
newa
dup
pushc 0
pushc 116
putfa
dup
pushc 1
pushc 104
putfa
dup
pushc 2
pushc 105
putfa
dup
pushc 3
pushc 115
putfa
dup
pushc 4
pushc 32
putfa
dup
pushc 5
pushc 110
putfa
dup
pushc 6
pushc 117
putfa
dup
pushc 7
pushc 109
putfa
dup
pushc 8
pushc 98
putfa
dup
pushc 9
pushc 101
putfa
dup
pushc 10
pushc 114
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 99
putfa
dup
pushc 13
pushc 97
putfa
dup
pushc 14
pushc 110
putfa
dup
pushc 15
pushc 32
putfa
dup
pushc 16
pushc 98
putfa
dup
pushc 17
pushc 101
putfa
dup
pushc 18
pushc 32
putfa
dup
pushc 19
pushc 115
putfa
dup
pushc 20
pushc 112
putfa
dup
pushc 21
pushc 108
putfa
dup
pushc 22
pushc 105
putfa
dup
pushc 23
pushc 116
putfa
dup
pushc 24
pushc 32
putfa
dup
pushc 25
pushc 105
putfa
dup
pushc 26
pushc 110
putfa
dup
pushc 27
pushc 116
putfa
dup
pushc 28
pushc 111
putfa
dup
pushc 29
pushc 32
putfa
call _writeString
drop 1
pushl 2
call _writeInteger
drop 1
pushc 5
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 110
putfa
dup
pushc 3
pushc 100
putfa
dup
pushc 4
pushc 32
putfa
call _writeString
drop 1
pushl 3
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__172:
pushl 2
pushl -3
call _factorize
drop 2
pushr
popl 4
pushl 4
pushl 0
call _fuseLists
drop 2
pushr
popl 0
pushl 3
pushl -3
call _factorize
drop 2
pushr
popl 4
pushl 4
pushl 0
call _fuseLists
drop 2
pushr
popl 0
__171:
jmp __168
__167:
pushl -3
brf __173
pushc 27
newa
dup
pushc 0
pushc 97
putfa
dup
pushc 1
pushc 110
putfa
dup
pushc 2
pushc 100
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 105
putfa
dup
pushc 5
pushc 115
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 118
putfa
dup
pushc 8
pushc 101
putfa
dup
pushc 9
pushc 114
putfa
dup
pushc 10
pushc 121
putfa
dup
pushc 11
pushc 32
putfa
dup
pushc 12
pushc 112
putfa
dup
pushc 13
pushc 114
putfa
dup
pushc 14
pushc 111
putfa
dup
pushc 15
pushc 98
putfa
dup
pushc 16
pushc 97
putfa
dup
pushc 17
pushc 98
putfa
dup
pushc 18
pushc 108
putfa
dup
pushc 19
pushc 121
putfa
dup
pushc 20
pushc 32
putfa
dup
pushc 21
pushc 112
putfa
dup
pushc 22
pushc 114
putfa
dup
pushc 23
pushc 105
putfa
dup
pushc 24
pushc 109
putfa
dup
pushc 25
pushc 101
putfa
dup
pushc 26
pushc 10
putfa
call _writeString
drop 1
__173:
pushl -4
call _provePrime
drop 1
pushr
brf __174
pushl -3
brf __176
pushc 17
newa
dup
pushc 0
pushc 116
putfa
dup
pushc 1
pushc 104
putfa
dup
pushc 2
pushc 101
putfa
dup
pushc 3
pushc 32
putfa
dup
pushc 4
pushc 112
putfa
dup
pushc 5
pushc 114
putfa
dup
pushc 6
pushc 105
putfa
dup
pushc 7
pushc 109
putfa
dup
pushc 8
pushc 97
putfa
dup
pushc 9
pushc 108
putfa
dup
pushc 10
pushc 105
putfa
dup
pushc 11
pushc 116
putfa
dup
pushc 12
pushc 121
putfa
dup
pushc 13
pushc 32
putfa
dup
pushc 14
pushc 111
putfa
dup
pushc 15
pushc 102
putfa
dup
pushc 16
pushc 32
putfa
call _writeString
drop 1
pushl -4
call _writeInteger
drop 1
pushc 17
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 104
putfa
dup
pushc 2
pushc 97
putfa
dup
pushc 3
pushc 115
putfa
dup
pushc 4
pushc 32
putfa
dup
pushc 5
pushc 98
putfa
dup
pushc 6
pushc 101
putfa
dup
pushc 7
pushc 101
putfa
dup
pushc 8
pushc 110
putfa
dup
pushc 9
pushc 32
putfa
dup
pushc 10
pushc 112
putfa
dup
pushc 11
pushc 114
putfa
dup
pushc 12
pushc 111
putfa
dup
pushc 13
pushc 118
putfa
dup
pushc 14
pushc 101
putfa
dup
pushc 15
pushc 110
putfa
dup
pushc 16
pushc 10
putfa
call _writeString
drop 1
__176:
jmp __175
__174:
pushc 30
newa
dup
pushc 0
pushc 99
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 110
putfa
dup
pushc 3
pushc 110
putfa
dup
pushc 4
pushc 111
putfa
dup
pushc 5
pushc 116
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 112
putfa
dup
pushc 8
pushc 114
putfa
dup
pushc 9
pushc 111
putfa
dup
pushc 10
pushc 118
putfa
dup
pushc 11
pushc 101
putfa
dup
pushc 12
pushc 32
putfa
dup
pushc 13
pushc 116
putfa
dup
pushc 14
pushc 104
putfa
dup
pushc 15
pushc 101
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 112
putfa
dup
pushc 18
pushc 114
putfa
dup
pushc 19
pushc 105
putfa
dup
pushc 20
pushc 109
putfa
dup
pushc 21
pushc 97
putfa
dup
pushc 22
pushc 108
putfa
dup
pushc 23
pushc 105
putfa
dup
pushc 24
pushc 116
putfa
dup
pushc 25
pushc 121
putfa
dup
pushc 26
pushc 32
putfa
dup
pushc 27
pushc 111
putfa
dup
pushc 28
pushc 102
putfa
dup
pushc 29
pushc 32
putfa
call _writeString
drop 1
pushl -4
call _writeInteger
drop 1
pushc 12
newa
dup
pushc 0
pushc 44
putfa
dup
pushc 1
pushc 32
putfa
dup
pushc 2
pushc 103
putfa
dup
pushc 3
pushc 105
putfa
dup
pushc 4
pushc 118
putfa
dup
pushc 5
pushc 105
putfa
dup
pushc 6
pushc 110
putfa
dup
pushc 7
pushc 103
putfa
dup
pushc 8
pushc 32
putfa
dup
pushc 9
pushc 117
putfa
dup
pushc 10
pushc 112
putfa
dup
pushc 11
pushc 10
putfa
call _writeString
drop 1
__175:
pushl -4
pushl 0
call _addToList
drop 2
pushr
popl 0
__168:
pushl 0
popr
jmp __155
__155:
rsf
ret
//
// void testFactorize(Boolean)
//
_testFactorize:
asf 1
pushc 12
newa
dup
pushc 0
pushc 102
putfa
dup
pushc 1
pushc 97
putfa
dup
pushc 2
pushc 99
putfa
dup
pushc 3
pushc 116
putfa
dup
pushc 4
pushc 111
putfa
dup
pushc 5
pushc 114
putfa
dup
pushc 6
pushc 105
putfa
dup
pushc 7
pushc 122
putfa
dup
pushc 8
pushc 101
putfa
dup
pushc 9
pushc 40
putfa
dup
pushc 10
pushc 41
putfa
dup
pushc 11
pushc 10
putfa
call _writeString
drop 1
pushc 12
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 10
putfa
call _writeString
drop 1
pushc 7
call _calcSmallPrimes
drop 1
call _showSmallPrimes
pushc 18
newa
dup
pushc 0
pushc 51
putfa
dup
pushc 1
pushc 42
putfa
dup
pushc 2
pushc 53
putfa
dup
pushc 3
pushc 42
putfa
dup
pushc 4
pushc 55
putfa
dup
pushc 5
pushc 42
putfa
dup
pushc 6
pushc 55
putfa
dup
pushc 7
pushc 42
putfa
dup
pushc 8
pushc 49
putfa
dup
pushc 9
pushc 52
putfa
dup
pushc 10
pushc 49
putfa
dup
pushc 11
pushc 42
putfa
dup
pushc 12
pushc 52
putfa
dup
pushc 13
pushc 57
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 61
putfa
dup
pushc 16
pushc 32
putfa
dup
pushc 17
pushc 10
putfa
call _writeString
drop 1
pushc 3
pushc 5
mul
pushc 7
mul
pushc 7
mul
pushc 141
mul
pushc 49
mul
pushl -3
call _factorize
drop 2
pushr
popl 0
pushl 0
call _sortList
drop 1
pushr
call _showList
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
__177:
rsf
ret
//
// void showBar()
//
_showBar:
asf 0
pushc 33
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 45
putfa
dup
pushc 13
pushc 45
putfa
dup
pushc 14
pushc 45
putfa
dup
pushc 15
pushc 45
putfa
dup
pushc 16
pushc 45
putfa
dup
pushc 17
pushc 45
putfa
dup
pushc 18
pushc 45
putfa
dup
pushc 19
pushc 45
putfa
dup
pushc 20
pushc 45
putfa
dup
pushc 21
pushc 45
putfa
dup
pushc 22
pushc 45
putfa
dup
pushc 23
pushc 45
putfa
dup
pushc 24
pushc 45
putfa
dup
pushc 25
pushc 45
putfa
dup
pushc 26
pushc 45
putfa
dup
pushc 27
pushc 45
putfa
dup
pushc 28
pushc 45
putfa
dup
pushc 29
pushc 45
putfa
dup
pushc 30
pushc 45
putfa
dup
pushc 31
pushc 45
putfa
dup
pushc 32
pushc 45
putfa
call _writeString
drop 1
pushc 32
newa
dup
pushc 0
pushc 45
putfa
dup
pushc 1
pushc 45
putfa
dup
pushc 2
pushc 45
putfa
dup
pushc 3
pushc 45
putfa
dup
pushc 4
pushc 45
putfa
dup
pushc 5
pushc 45
putfa
dup
pushc 6
pushc 45
putfa
dup
pushc 7
pushc 45
putfa
dup
pushc 8
pushc 45
putfa
dup
pushc 9
pushc 45
putfa
dup
pushc 10
pushc 45
putfa
dup
pushc 11
pushc 45
putfa
dup
pushc 12
pushc 45
putfa
dup
pushc 13
pushc 45
putfa
dup
pushc 14
pushc 45
putfa
dup
pushc 15
pushc 45
putfa
dup
pushc 16
pushc 45
putfa
dup
pushc 17
pushc 45
putfa
dup
pushc 18
pushc 45
putfa
dup
pushc 19
pushc 45
putfa
dup
pushc 20
pushc 45
putfa
dup
pushc 21
pushc 45
putfa
dup
pushc 22
pushc 45
putfa
dup
pushc 23
pushc 45
putfa
dup
pushc 24
pushc 45
putfa
dup
pushc 25
pushc 45
putfa
dup
pushc 26
pushc 45
putfa
dup
pushc 27
pushc 45
putfa
dup
pushc 28
pushc 45
putfa
dup
pushc 29
pushc 45
putfa
dup
pushc 30
pushc 45
putfa
dup
pushc 31
pushc 10
putfa
call _writeString
drop 1
__178:
rsf
ret
//
// void run(Boolean)
//
_run:
asf 4
pushc 10000
call _calcSmallPrimes
drop 1
call _showBar
pushc 1
popl 0
jmp __181
__180:
pushc 3
newa
dup
pushc 0
pushc 49
putfa
dup
pushc 1
pushc 48
putfa
dup
pushc 2
pushc 94
putfa
call _writeString
drop 1
pushl 0
call _writeInteger
drop 1
pushc 5
newa
dup
pushc 0
pushc 43
putfa
dup
pushc 1
pushc 49
putfa
dup
pushc 2
pushc 32
putfa
dup
pushc 3
pushc 61
putfa
dup
pushc 4
pushc 32
putfa
call _writeString
drop 1
pushl 0
call _computeTarget
drop 1
pushr
popl 1
pushl 1
call _writeInteger
drop 1
pushc 4
newa
dup
pushc 0
pushc 32
putfa
dup
pushc 1
pushc 61
putfa
dup
pushc 2
pushc 32
putfa
dup
pushc 3
pushc 10
putfa
call _writeString
drop 1
pushl 1
pushl -3
call _factorize
drop 2
pushr
popl 2
pushl 2
call _sortList
drop 1
pushr
popl 2
pushl 2
call _showList
drop 1
pushc 17
newa
dup
pushc 0
pushc 99
putfa
dup
pushc 1
pushc 104
putfa
dup
pushc 2
pushc 101
putfa
dup
pushc 3
pushc 99
putfa
dup
pushc 4
pushc 107
putfa
dup
pushc 5
pushc 58
putfa
dup
pushc 6
pushc 32
putfa
dup
pushc 7
pushc 112
putfa
dup
pushc 8
pushc 114
putfa
dup
pushc 9
pushc 111
putfa
dup
pushc 10
pushc 100
putfa
dup
pushc 11
pushc 117
putfa
dup
pushc 12
pushc 99
putfa
dup
pushc 13
pushc 116
putfa
dup
pushc 14
pushc 32
putfa
dup
pushc 15
pushc 61
putfa
dup
pushc 16
pushc 32
putfa
call _writeString
drop 1
pushl 2
call _evalList
drop 1
pushr
popl 3
pushl 3
call _writeInteger
drop 1
pushc 1
newa
dup
pushc 0
pushc 10
putfa
call _writeString
drop 1
call _showBar
pushl 0
pushc 1
add
popl 0
__181:
pushl 0
pushc 30
le
brt __180
__182:
__179:
rsf
ret
//
// void tests(Boolean)
//
_tests:
asf 0
pushc 7
newa
dup
pushc 0
pushc 10
putfa
dup
pushc 1
pushc 84
putfa
dup
pushc 2
pushc 101
putfa
dup
pushc 3
pushc 115
putfa
dup
pushc 4
pushc 116
putfa
dup
pushc 5
pushc 115
putfa
dup
pushc 6
pushc 10
putfa
call _writeString
drop 1
pushc 7
newa
dup
pushc 0
pushc 61
putfa
dup
pushc 1
pushc 61
putfa
dup
pushc 2
pushc 61
putfa
dup
pushc 3
pushc 61
putfa
dup
pushc 4
pushc 61
putfa
dup
pushc 5
pushc 10
putfa
dup
pushc 6
pushc 10
putfa
call _writeString
drop 1
call _testComputeTarget
call _testCalcSmallPrimes
call _testSmallPrimeFactor
call _testPowerMod
call _testGCD
call _testIsComposite
call _testProvePrime
call _testFindFactor
pushl -3
call _testFactorize
drop 1
__183:
rsf
ret
//
// void main()
//
_main:
asf 0
pushc 1
call _run
drop 1
__184:
rsf
ret