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-[0]).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. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top