Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.70 KB | None | 0 0
  1. f←{({+/⍵=⍵∧⍳⍵}¨⍳2*⍵)⍳⍵}
  2.  
  3. > f 13
  4. 4096
  5.  
  6. > f 14
  7. 192
  8.  
  9. {.{.,{)1$%},,-=}+2@?,?}:f;
  10.  
  11. {.{)..,{)1$%},,-@=!}+do}:f;
  12.  
  13. 13 f p # => 4096
  14. 14 f p # => 192
  15. 15 f p # => 144
  16.  
  17. # Calculate numbers of divisors
  18. # .,{)1$%},,-
  19. # Input stack: n
  20. # After application: D(n)
  21.  
  22. ., # push array [0 .. n-1] to stack
  23. { # filter array by function
  24. ) # take array element and increase by one
  25. 1$% # test division of n ($1) by this value
  26. }, # -> List of numbers x where n is NOT divisible by x+1
  27. , # count these numbers. Stack now is n xd(n)
  28. - # subtracting from n yields the result
  29.  
  30.  
  31.  
  32. # Test if number of divisors D(n) is equal to d
  33. # {D=}+ , for D see above
  34. # Input stack: n d
  35. # After application: D(n)==d
  36.  
  37. {
  38. # swap stack -> d n
  39. D # calculate D(n) -> d D(n)
  40. = # compare
  41. }+ # consumes d from stack and prepends it to code block
  42.  
  43.  
  44.  
  45. # Search for the first number which D(n) is equal to d
  46. # .T2@?,? , for T see above
  47. # Input stack: d
  48. # After application: f(d)
  49.  
  50. . # duplicate -> d d
  51. T # push code block (!) for T(n,d) -> d T(n,d)
  52. 2@? # swap and calculate 2^d -> T(n,d) 2^d
  53. , # make array -> T(n,d) [0 .. 2^d-1]
  54. ? # search first element in array where T(n,d) is true -> f(d)
  55.  
  56. f=lambda n,k=1:n==sum(k%i<1for i in range(1,k+1))and k or f(n,k+1)
  57.  
  58. def f(n,k=1):
  59. while 1:
  60. if sum(k%i<1for i in range(1,k+1))==n:return k
  61. k+=1
  62.  
  63. (For[i=1,DivisorSum[++i,1&]!=#,];i)&
  64.  
  65. (For[i=1,DivisorSum[++i,1&]!=#,];i)&@200
  66.  
  67. 498960
  68.  
  69. f=.>:@]^:([~:[:*/[:>:_&q:@])^:_&1
  70.  
  71. f 19
  72. 262144
  73.  
  74. f k=head[x|x<-[k..],length[y|y<-[1..x],mod x y==0]==k]
  75.  
  76. {{$[x=+/a=_a:y%!1+y;y;.z.s[x;1+y]]}[x;0]}
  77.  
  78. k){{$[x=+/a=_a:y%!1+y;y;.z.s[x;1+y]]}[x;0]}14
  79. 192
  80. k){{$[x=+/a=_a:y%!1+y;y;.z.s[x;1+y]]}[x;0]}13
  81. 'stack
  82.  
  83. F n
  84. i←0
  85. l:i←i+1
  86. →(n≠+/0=(⍳i)|i)/l
  87. i
  88.  
  89. F 6
  90. 12
  91.  
  92. {⍵{⍺=+/0=⍵|⍨⍳⍵:⍵⋄⍺∇⍵+1}1}
  93.  
  94. f=function(N){n=1;while(N-sum(!n%%1:n))n=n+1;n}
  95.  
  96. f(6)
  97. [1] 12
  98. f(13)
  99. [1] 4096
  100.  
  101. function f(N){for(j=i=m=1;m-N||j-i;j>i?i+=m=j=1:m+=!(i%++j));return i}
  102.  
  103. for(j=i=m=1;m-N||j-i;j>i?i+=m=j=1:m+=!(i%++j))
  104.  
  105. f n=until(i->n==sum[1|j<-[1..i],rem i j<1])(+1)1
  106.  
  107. i;f(n){while(n-g(++i));return i;}g(j){return j?!(i%j)+g(j-1):0;}
  108.  
  109. i;j;k;f(n){while(k-n&&++i)for(k=0,j=1;j<=i;k+=!(i%j++));return i;}
  110.  
  111. 1<>p=[]
  112. x<>p|mod x p>0=x<>(p+1)|1<2=(div x p<>p)++[p]
  113. f k=product[p^(c-1)|(p,c)<-zip[r|r<-[2..k],2>length(r<>2)](k<>2)]
  114.  
  115. main=do putStrLn$show$ f (100000::Integer)
  116.  
  117. *Main> f 18
  118. 180
  119. *Main> f 10000000
  120. 1740652905587144828469399739530000
  121. *Main> f 1000000000
  122. 1302303070391975081724526582139502123033432810000
  123. *Main> f 100000000000
  124. 25958180173643524088357042948368704203923121762667635047013610000
  125. *Main> f 10000000000000
  126. 6558313786906640112489895663139340360110815128467528032775795115280724604138270000
  127. *Main> f 1000000000000000
  128. 7348810968806203597063900192838925279090695601493714327649576583670128003853133061160889908724790000
  129. *Main> f 100000000000000000
  130. 71188706857499485011467278407770542735616855123676504522039680180114830719677927305683781590828722891087523475746870000
  131. *Main> f 10000000000000000000
  132. 2798178979166951451842528148175504903754628434958803670791683781551387366333345375422961774196997331643554372758635346791935929536819490000
  133. *Main> f 10000000000000000000000
  134. 6628041919424064609742258499702994184911680129293140595567200404379028498804621325505764043845346230598649786731543414049417584746693323667614171464476224652223383190000
  135.  
  136. f(n,s){return--s?f(n,s)+!(n%s):1;}
  137. x;
  138. g(d){return++x,f(x,x)-d&&g(d),x;}
  139.  
  140. (For[k=1,DivisorSigma[0, k]!= #,k++]; k)&
  141.  
  142. (For[k = 1, DivisorSigma[0, k] != #, k++]; k) &[7]
  143.  
  144. (* 64 *)
  145.  
  146. smallestNumber[nDivisors_] :=
  147. Module[{k = 1},
  148. While[Length[Divisors[k]] != nDivisors, k++];k]
  149.  
  150. Table[{i, nDivisors[i]}, {i, 1, 20}] // Grid
  151.  
  152. 2*RÆdi
  153.  
  154. 2*RÆdi Main link. Argument: n (integer)
  155.  
  156. 2* Compute 2**n.
  157. R Range; yield [1, ..., 2**n]. Note that 2**(n-1) has n divisors, so this
  158. range contains the number we are searching for.
  159. Æd Divisor count; compute the number of divisors of each integer in the range.
  160. i Index; return the first (1-based) index of n.
  161.  
  162. int a(int d){int k=0,r,i;for(;r!=d;k++)for(i=2,r=1;i<=k;i++)if(!(k%i))r++;return k-1;}
  163.  
  164. from itertools import*
  165. f=lambda n:next(i for i in count()if sum(1>i%(j+1)for j in range(i))==n)
  166.  
  167. fl
  168.  
  169. f The list of factors of
  170. the input variable
  171. l has length equal to
  172. the output variable.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement