• API
• FAQ
• Tools
• Archive
SHARE
TWEET # Untitled a guest Aug 20th, 2019 55 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. n,x   - output
2. 2,1   - 0   (since CD(2,1)={1,3}, distinct prime divisors={}, ravenity=0)
3. 5,1   - 2
4. 100,4 - 5
5. 720,6 - 11
6.
7. ŒRḟ0*3+µÆfFœ-µQL
8.
9. ŒRḟ0*3+µÆfFœ-µQL  Main link. Arguments, x, n
10.
11. ŒR                Range; yield [-x, ..., x].
12.   ḟ0              Filter out 0.
13.     *3            Cube each remaining integer.
14.       +           Add n to all cubes.
15.        µ          Begin a new, monadic link. Argument: A (list of sums)
16.         Æf        Factorize each k in A.
17.           F       Flatten the resulting, nested list.
18.            œ-     Perform multiset difference with A.
19.                   If k in A is prime, Æf returns [k], adding on k too many to the
20.                   flat list. Multiset difference with A removes exactly one k from
21.                   the results, thus getting rid of primes.
22.                   If k is composite (or 1), it cannot appear in the primes in the
23.                   flat list, so subtracting it does nothing.
24.              µ    Begin a new, monadic link. Argument: D (list of prime divisors)
25.               Q   Unique; deduplicate D.
26.                L  Compute the length of the result.
27.
28. l{st#mP+Q^d3s_BMSE
29.
30. l                   Length
31.  {                  Uniquify
32.   s                 Combine divisor lists
33.    t#               Filter by if more than one element
34.      PM             Take prime factorization of each number
35.        +RQ          Add each num in list to input
36.           s_BM      Each num in list and its negative (with bifurcate)
37.               ^R3   Cube each num in list
38.                  SE Inclusive unary range - [1, 2, 3,... n] to input
39.
40. L3mD(«-Dp_Ïvyf`})Úg
41.
42. :3^t_h+tZp~)"@Yf!]vun
43.
44. :       % take n implicitly. Generate [1,2,...,n]
45. 3^      % raise to 3, element-wise
46. t_h     % duplicate, negate, concatenate horizontally: [1,2,...,n,-1,2,...-n]
47. +       % take x implicitly. Add to that array
48. t       % duplicate
49. Zp      % array that contains true for primes
50. ~       % logical negate
51. )       % apply index to keep only non-primes
52. "       % for each number in that array
53.   @     %   push that number
54.   Yf!   %   prime factors, as a column array
55. ]       % end for each
56. v       % concatenate vertically all factors
57. u       % remove repeated factors
58. n       % number of elements of that array. Implicitly display
59.
60. #@~.@(,@:q:-.0&,)@:+(|#^&3)@i:
61.
62. f =: #@~.@(,@:q:-.0&,)@:+(|#^&3)@i:
63.    100 f 4
64. 5
65.
66. #@~.@(,@:q:-.0&,)@:+(|#^&3)@i:
67.                             i:  Range from -x to x
68.                     (     )@    Apply this verb to the range:
69.                        ^&3        a) every item cubed
70.                      |            b) absolute value of every item
71.                       #           c) every item in a) repeated b) times; this removes 0
72.                                      and produces some harmless duplication
73.                    +            Add n to every element of the resulting list
74.      (          )@:             Apply this verb to the resulting vector:
75.              0&,                  a) the vector with 0 appended
76.       ,@:q:                       b) flat list of prime divisors in the vector
77.                                      (and some extra 0s since we flatten an un-even matrix)
78.            -.                     c) list b) with elements of a) removed; this gets rid of
79.                                      the extra 0s and all primes that were in the list
80. #@~.@                           Remove duplicates and take length
81.
82. lambda r,n:len({z for z in{v for f in{t for u in[[r-q**3,r+q**3]for q in range(1,n+1)]for t in u if any(t%g<1 for g in range(2,t))}for v in range(2,f)if f%v<1}if all(z%g>0 for g in range(2,z))})
83.
84. (n,x)->omega(factorback(select(k->!isprime(k),vector(2*x,i,n+(i-(i<=x)-x)^3))))
85.
86. (n,x)->omega(factorback(select(k->!isprime(k),concat(vector(x,i,n-i^3),vector(x,i,n+i^3)))))
87.
88. ->(n,x){require'prime'
89. v=((-x..x).to_a-).map{|i|n+i**3}.reject{|e|Prime.prime?(e)}
90. Prime.each(v[-1]).select{|i|v.any?{|e|e%i==0}}.size}
91.
92. a=range
93. p=lambda n:any(n%x<1for x in a(2,n))
94. r=lambda n,x:len(set(sum([[x for x in a(2,z+1)if z%x<1&1>p(x)]for z in filter(p,[n+z**3for z in a(-x,x+1)])],[])))
95.
96. def is_composite(n):
97.     return any(n % x == 0 for x in range(2, n))
98.
99. def prime_factors(n):
100.     return {x for x in range(2, n+1) if n % x == 0 and not is_composite(x)}
101.
102. def ravenity(n, x):
103.     nums = [n + z**3 for z in range(-x, x+1)]
104.     nums = filter(is_composite, nums)
105.     factors = map(prime_factors, nums)
106.     factors = sum(factors, [])
107.     #remove duplicates
108.     factors = set(factors)
109.     return len(factors)
110.
111. Tr[1^Union[First/@Join@@FactorInteger/@Select[z=Range@#2^3;Join@@{#-z,#+z},Not@*PrimeQ]]]&
112.
113. F[n_, x_] :=
114.   Length[Union[                                        (* number of unique elements   *)
115.     First /@                                           (* drop multiplicities         *)
116.       Join @@                                          (* join all prime factor lists *)
117.         FactorInteger /@                               (* compute prime factors       *)
118.           Select[                                      (* select those...             *)
119.             Join @@ {n - Range[x]^3, n + Range[x]^3},  (* ...candidates...            *)
120.             Not@*PrimeQ]]]                             (* ...that are not prime       *)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!

Top