Mercurial > hg > jgplsrc
view test/gqco.ijs @ 0:e0bbaa717f41 draft default tip
lol J
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 25 Nov 2013 11:56:30 -0500 |
parents | |
children |
line wrap: on
line source
NB. q: ------------------------------------------------------------------ f =: = */ g =: (,. -: q:)@~.@] '' -: q: 1 NB. Jeffrey Shallit (i.($x),0) -: q: x=:$0 (i.($x),0) -: q: x=:i.?~5 x (f *. g) q: x=:2 x (f *. g) q: x=:*/2#2 3 5 7 11 13 x (f *. g) q: x=:2^30 *./ x (f *. g)&> q:&.> x=:2+i.1000 *./ x (f *. g)&> q:&.> x=:2+?40$<._1+2^31 *./ x (f *. g)&> q:&.> x=:y^<.2.147e9^.~ y=:p:i.15 *./ x (f *. g)&> q:&.> x=:*/\p: i.9 *./ x (f *. g)&> q:&.> x=:(<._1+2^31)-i.40 *./ x (f *. g)&> q:&.> x=:p: 1e6*>:i.105 x -: */"1 [ 1>.q: x=:1+?4 5$1e7 x -: */"1 [ 1>.q:"0 x (q: x) -: >q:&.> x n = */ q: n=: */ 3,29$2 'domain error' -: q: etx 0 'domain error' -: q: etx '1234' 'domain error' -: q: etx _19 'domain error' -: q: etx 3.4 'domain error' -: q: etx 3j4 'domain error' -: q: etx <12345 NB. q: model ------------------------------------------------------------ max =: 1&>. @ (>./) @ , pn =: <. @ (1.3&*) @ (% 1&>.@^.) primes=: p: @ i. @ pn @ %: @ max pa =: [ #~ 0: = | qa =: 4 : 0 z=.p=.x pa r=.y while. #p do. z=.z,p=.p pa r=.<.r%*/p end. /:~z,r-.1 ) qco =: primes qa"1 0 ] (q: -: qco) 1 (q: -: qco) >:i.10 5 (q: -: qco) x=:1+?20$2e9 NB. q: dyad ------------------------------------------------------------- 2 0 2 1 -: _ q: 700 2 0 2 1 0 -: 5 q: 700 '' -: _ q: 1 '' -: 0 q: 1 (,0) -: 1 q: 1 0 0 -: 2 q: 1 (-: [&.(40&q:))"0 x=:1+?2 10$100 x -: (p:i.{:$y) */ .^"1 y=:_ q: x=:>:i.10 10 x -: (p:i.{:$y) */ .^"1 y=:50 q: x x -: (p:i.{:$y) */ .^"1 y=:_ q: x=:>:?10 2 7$10000 x -: (p:i.{:$y) */ .^"1 y=:(1+p:^:_1 >./x) q: x=:>:?200$10000 (_ q: x) (<\@[ -: >:@i.@#@[ q:&.> ]) x=:*/>:?4$215 (_ q: x) (<\@[ -: >:@i.@#@[ q:&.> ]) x=:*/>:?4$215 64 -: 3!:0 q: !100x 64 -: 3!:0 ] _ q: !100x 300 3 -: 2 q: 27*2^300x (i.0) -: 0 q: 1+2^1000x NB. q: ------------------------------------------------------------------ phi =: * -.@%@~.&.q: NB. Euler's totient function 1 = phi 1 (p-1) -: phi"0 p=:p: i.20 x=:b#x [ y=:b#y [ b=:1=x+.y=:?100$2e4 [ x=:>:?100$1e5 (phi"0 x*y) -: x *&phi"0 y f =: 1: #. 1: = (+.i.) *./ (f -: phi)"0 x=:>:i.200 *./ (f -: phi)"0 x=:>:?10$1e4 odometer =: #: i.@(*/) divisors =: /:~ @ (~. */ .^"1 odometer@:>:@(#/.~)) @ q: t2 =: [ -: +/@phi@divisors *./ t2"0 x=:>:i.200 *./ t2"0 x=:>:?10$2e9 d0=: [: +/ 0: = >:@i. | ] NB. number of divisors of n d1=: >:@#/.~ &. q: d2=: >:@#;.1 @ ~: &. q: d3=: */ @: >: @: (_&q:) (d0 -: d1)"0 >:i.10 20 (d0 -: d1)"0 x=:>:?10 10$1e4 (d1 -: d2)"0 >:i.10 20 (d1 -: d2)"0 x=:>:?10 10$1e6 (d2 -: d3)"0 >:i.10 20 (d2 -: d3)"0 x=:>:?10 10$1e6 39001250856960000x -: d3 !100x 'domain error' -: 'a' q: etx 123 'domain error' -: 3j5 q: etx 123 'domain error' -: (<3)q: etx 123 'domain error' -: 1 q: etx 'a' 'domain error' -: 1 q: etx 0 'domain error' -: 1 q: etx _35 'domain error' -: 1 q: etx 3.5 'domain error' -: 1 q: etx 3j5 'domain error' -: 1 q: etx <35 NB. q: on large integers ------------------------------------------------ f=: 3 : 0 v=: q: y assert. y=*/v assert. v -: /:~ v assert. (, -: q:)"0 v 1 ) f x=: */ x: p: 10^i.5 f x=: */ x: p: 10^i.6 f x=: */ x: p: 10^i.7 f x=: */ x: p: 10^i.8 f x=: */ x: p: 1e7,10 ?@$ 1228 f x=: */ x: p: 2 ?@$ 1e8 f x=: 10 #. 18 ?@$ 10x f x=: */ p: 1e8+0 1 2x f x=: 1.3e13 f x=: 252097800629 4!:55 ;:'b d0 d1 d2 d3 divisors f g max odometer p pa phi pn primes' 4!:55 ;:'qa qco t2 x y '