factor.b
来自「ELFkickers是一组elf工具」· B 代码 · 共 196 行
B
196 行
* factor an arbitrarily large positive integer** Copyright (C) 1999-2001 by Brian Raiter* under the GNU General Public License>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-** read in the number*<<<<<<<<<+[-[>>>>>>>>>>][-]<<<<<<<<<<[[->>>>>>>>>>+<<<<<<<<<<]<<<<<<<<<<] >>>>>>>>>>,----------]>>>>>>>>>>[------------------------------------->>>>>>>>>->]<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]-** display the number and initialize the loop variable to two*[>++++++++++++++++++++++++++++++++++++++++++++++++. ------------------------------------------------<<<<<<<<<<<]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.--------------------------.[-]>>>>>>>>>>>>++<<<<+** the main loop*[ [-]>> * * make copies of the number and the loop variable * [>>>>[-]>[-]>[-]>[-] >[-]>[-] <<<<<<<[->>>+>+<<<<]>>>>>>>>] <<<<<<<<<<[>>>>>>[-<<<<+>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> [>[->>>+>>+<<<<<]>>>>>>>>>] <<<<<<<<<<[>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> * * divide the number by the loop variable * [>>>[-]>>>[-]>[-]>>>] initialize <<<<<<<<<<[<<<<<<<<<<] >>>>>>>>>[-]>>>>>>>+<<<<<<<<[+]+ [ ->> double divisor until above dividend [>>>>>>[->++<]>>>>]<<<<<<<<<< [>>>>>>>>[-]>[-] <<<<[->>>++<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> [>>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< [->--------->>>>>>>>>+<<<<<<<<<<[->+<]]]]]]]]]]]>>] <<<<<<<<<<[>>>>>>>>>[-<+<<<+>>>>]<<<<<<<<<<<<<<<<<<<]>>>>>>>>>> [>>>>>>>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+> [-<--------->>>>>>>>>>>+<<<<<<<<<<[-<+>]]]]]]]]]]]>>>] <<<<<<<<<< [>>>>[->>>+>>+<<<<<]<<<<<<<<<<<<<<] >>>>>>>>>>[>>>>>>>[-<<<+>>>]>>>]<<<<<<<<<< [>>>>>>>>[->-<]> [<<<<<<<<<[<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<<] >>>>>>>>>>>>>>>>>>>] <<<<<<<<<<<<<<<<<<<] >>>>>>>>>[+[+[+[+[+[+[+[+[+[+[[-]<+>]]]]]]]]]]]< ] >>>>>>>> [ subtract divisor from dividend <<<<<< [>>>>>>>>[-]>[-]<<<<<[->>>+>+<<<<]>>>>>>]<<<<<<<<<< [>>>>>>>>[-<<<<+>>>>]<<<[->>>+>+<<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> [>>>>>>>>>[-<<<<+>>>>]>]<<<<<<<<<< [>>>>>>>>[-<->]<<<<<<<<<<<<<<<<<<]>>>>>>>>>> [>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< [++++++++++[+>-<]>>>>>>>>>>-<<<<<<<<<<]]]]]]]]]]]>>>] >>>>>>>+ [ if difference is nonnegative then [-]<<<<<<<<<<<<<<<<< replace dividend and increment quotient [>>>>[-]>>>>[-<<<<+>>>>]<<[->>+<<]<<<<<<<<<<<<<<<<]>>>>>>>>>> [>>>>>>>>[->+<<<+>>]>>]<<<<<<<<<< [>>>[->>>>>>+<<<<<<]<<<<<<<<<<<<<]>>>>>>>>>> [>>>>>>>>>[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> [-<<<<<<+>>>>>>[-<<<<<<--------->>>>>>>>>>>>>>>>+<<<<<<<<<< [-<<<<<<+>>>>>>]]]]]]]]]]]>] >>>>>>> ] halve divisor and loop until zero <<<<<<<<<<<<<<<<<[<<<<<<<<<<]>>>>>>>>>> [>>>>>>>>[-]<<[->+<]<[->>>+<<<]>>>>>]<<<<<<<<<< [+>>>>>>>[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> [-<<<<<<<+>>>>>>>]]]]]]]]]<<<<<<< [->>>>>>>+<<<<<<<]-<<<<<<<<<<] >>>>>>> [-<<<<<<<<<<<+>>>>>>>>>>>] >>>[>>>>>>>[-<<<<<<<<<<<+++++>>>>>>>>>>>]>>>]<<<<<<<<<< [+>>>>>>>>[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> [-<<<<<<<<+>>>>>>>>]]]]]]]]]<<<<<<<< [->>>>>>>>+<<<<<<<<]-<<<<<<<<<<] >>>>>>>>[-<<<<<<<<<<<<<+>>>>>>>>>>>>>]>> [>>>>>>>>[-<<<<<<<<<<<<<+++++>>>>>>>>>>>>>]>>]<<<<<<<<<< [<<<<<<<<<<]>>>>>>>>>> >>>>>> ] <<<<<< * * make copies of the loop variable and the quotient * [>>>[->>>>+>+<<<<<]>>>>>>>] <<<<<<<<<< [>>>>>>>[-<<<<+>>>>]<<<<<[->>>>>+>>+<<<<<<<]<<<<<<<<<<<<] >>>>>>>>>>[>>>>>>>[-<<<<<+>>>>>]>>>]<<<<<<<<<< * * break out of the loop if the quotient is larger than the loop variable * [>>>>>>>>>[-<->]< [<<<<<<<< [<<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] >>>>>>>>>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] >>>>>>>>[>-<[+[+[+[+[+[+[+[+[+[[-]>+<]]]]]]]]]]]>+ [ [-] * * partially increment the loop variable * <[-]+>>>>+>>>>>>>>[>>>>>>>>>>]<<<<<<<<<< * * examine the remainder for nonzero digits * [<<<<<<[<<<<[<<<<<<<<<<]>>>>+<<<<<<<<<<]<<<<] >>>>>>>>>>>>>>>>>>>>[>>>>>>>>>>]<<<<<<<<<<[<<<<<<<<<<] >>>>- [ [+] * * decrement the loop variable and replace the number with the quotient * >>>>>>>>-<<[>[-]>>[-<<+>>]>>>>>>>]<<<<<<<<<< * * display the loop variable * [+>>[>>>>>>>>+>>]<<-<<<<<<<<<<]- [>>++++++++++++++++++++++++++++++++++++++++++++++++. ------------------------------------------------<<<<<<<<<<<<] ++++++++++++++++++++++++++++++++.[-]>>>> ] * * normalize the loop variable * >>>>>> [>>[->>>>>+<<<<<[->>>>>+<<<<< [->>>>>+<<<<<[->>>>>+<<<<< [->>>>>+<<<<<[->>>>>+<<<<< [->>>>>+<<<<<[->>>>>+<<<<< [->>>>>+<<<<<[->>>>>--------->>>>>+<<<<<<<<<< [->>>>>+<<<<<]]]]]]]]]]]>>>>>>>>] <<<<<<<<<<[>>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<<] >>>>>>>>> ]<]>>** display the number and end*[>>>>>>>>>>]<<<<<<<<<<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]-[>++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<]++++++++++.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?