diff options
Diffstat (limited to 'l/primes.bf')
-rw-r--r-- | l/primes.bf | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/l/primes.bf b/l/primes.bf new file mode 100644 index 0000000..f492705 --- /dev/null +++ b/l/primes.bf @@ -0,0 +1,194 @@ +compute prime numbers +to use type the max number then push Alt 1 0 +=================================================================== +======================== OUTPUT STRING ============================ +=================================================================== +>++++++++[<++++++++>-]<++++++++++++++++.[-] +>++++++++++[<++++++++++>-]<++++++++++++++.[-] +>++++++++++[<++++++++++>-]<+++++.[-] +>++++++++++[<++++++++++>-]<+++++++++.[-] +>++++++++++[<++++++++++>-]<+.[-] +>++++++++++[<++++++++++>-]<+++++++++++++++.[-] +>+++++[<+++++>-]<+++++++.[-] +>++++++++++[<++++++++++>-]<+++++++++++++++++.[-] +>++++++++++[<++++++++++>-]<++++++++++++.[-] +>+++++[<+++++>-]<+++++++.[-] +>++++++++++[<++++++++++>-]<++++++++++++++++.[-] +>++++++++++[<++++++++++>-]<+++++++++++.[-] +>+++++++[<+++++++>-]<+++++++++.[-] +>+++++[<+++++>-]<+++++++.[-] +=================================================================== +======================== INPUT NUMBER ============================ +=================================================================== +[[[ COMMENT + + cont=1 + [ + - cont=0 + >, + ======SUB10====== + ---------- + + [ not 10 + <+> cont=1 + =====SUB38====== + ---------- + ---------- + ---------- + -------- + > + =====MUL10======= + [>+>+<<-]>>[<<+>>-]< dup + >>>+++++++++ + [ + <<< + [>+>+<<-]>>[<<+>>-]< dup + [<<+>>-] + >>- + ] + <<<[-]< + ======RMOVE1====== + < + [>+<-] + ] + < + ] + >>[<<+>>-]<< +]]] +++++++++++.[-] OUTPUT A NEWLINE +- THE INPUT NUMBER (WE DONT HAVE STDIN YET) +=================================================================== +======================= PROCESS NUMBER =========================== +=================================================================== +==== ==== ==== ==== +numd numu teid teiu +==== ==== ==== ==== +>+<- +[ + >+ + ======DUP====== + [>+>+<<-]>>[<<+>>-]< + >+<-- + >>>>>>>>+<<<<<<<< isprime=1 + [ + >+ + <- + =====DUP3===== + <[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<<< + =====DUP2===== + >[>>+>+<<<-]>>>[<<<+>>>-]<<< < + >>> + ====DIVIDES======= + [>+>+<<-]>>[<<+>>-]< DUP i=div + + << + [ + >>>>>+ bool=1 + <<< + [>+>+<<-]>>[<<+>>-]< DUP + [>>[-]<<-] IF i THEN bool=0 + >> + [ IF i=0 + <<<< + [>+>+<<-]>>[<<+>>-]< i=div + >>> + - bool=0 + ] + <<< + - DEC i + << + - + ] + + +>>[<<[-]>>-]<< + >[-]< CLR div + =====END DIVIDES==== + [>>>>>>[-]<<<<<<-] if divides then isprime=0 + << + >>[-]>[-]<<< + ] + >>>>>>>> + [ + - + <<<<<<<[-]<< + [>>+>+<<<-]>>>[<<<+>>>-]<<< + >> + =================================================================== + ======================== OUTPUT NUMBER =========================== + =================================================================== + [>+<-]> + + [ + ======DUP====== + [>+>+<<-]>>[<<+>>-]< + + + ======MOD10==== + >+++++++++< + [ + >>>+<< bool= 1 + [>+>[-]<<-] bool= ten==0 + >[<+>-] ten = tmp + >[<<++++++++++>>-] if ten=0 ten=10 + <<- dec ten + <- dec num + ] + +++++++++ num=9 + >[<->-]< dec num by ten + + =======RROT====== + [>+<-] + < [>+<-] + < [>+<-] + >>>[<<<+>>>-] + < + + =======DIV10======== + >+++++++++< + [ + >>>+<< bool= 1 + [>+>[-]<<-] bool= ten==0 + >[<+>-] ten = tmp + >[<<++++++++++>>>+<-] if ten=0 ten=10 inc div + <<- dec ten + <- dec num + ] + >>>>[<<<<+>>>>-]<<<< copy div to num + >[-]< clear ten + + =======INC1========= + <+> + ] + + < + [ + =======MOVER========= + [>+<-] + + =======ADD48======== + +++++++[<+++++++>-]<-> + + =======PUTC======= + <.[-]> + + ======MOVEL2======== + >[<<+>>-]< + + <- + ] + + >++++[<++++++++>-]<.[-] + + =================================================================== + =========================== END FOR =============================== + =================================================================== + >>>>>>> + ] + <<<<<<<< + >[-]< + [-] + <<- +] + +======LF======== + +++++++++++.[-] |