login
Number of [*]-divisors d <= n such that there is another [*]-divisor d' < n with d [*] d' = n.
2

%I #18 Oct 10 2023 23:01:54

%S 0,1,1,2,1,3,2,3,1,3,1,5,1,5,4,4,1,3,1,5,2,3,1,7,1,3,3,8,1,9,7,5,1,3,

%T 1,5,1,3,1,7,1,5,1,5,3,3,3,9,1,3,3,5,1,7,3,11,1,3,3,14,3,15,13,6,1,3,

%U 1,5,1,3,1,7,2,3,1,5,1,3,1,9,1,3,1,8,4,3,1,7,1,7,3,5,1,7,5,11,1

%N Number of [*]-divisors d <= n such that there is another [*]-divisor d' < n with d [*] d' = n.

%C Define [+] to be binary bitwise inclusive-OR and let [*] denote the shift-and-[+] product. ([+] is usually simply called OR.) Note that [*] is commutative, associative, and distributes over [+]. If x [*] y = z, we say x and y are [*]-divisors of z.

%H Reinhard Zumkeller, <a href="/A066376/b066376.txt">Table of n, a(n) for n = 1..1000</a>

%e 14 has 5 [*]-divisors: 1, 2, 3, 6, 7, since for example 2 [*] 7 = 10 [*] 111 = 1110 OR 0000 = 1110; and 3 [*] 6 = 11 [*] 110 = 1100 OR 0110 = 1110.

%o (Haskell)

%o import Data.Bits (Bits, (.|.), shiftL, shiftR)

%o a066376 :: Int -> Int

%o a066376 n = length [d | d <- [1..n-1], any ((== n) . (orm d)) [1..n]] where

%o orm 1 v = v

%o orm u v = orm (shiftR u 1) (shiftL v 1) .|. if odd u then v else 0

%o -- _Reinhard Zumkeller_, Mar 01 2013

%Y Cf. A067139 ("primes").

%Y See A003986 for a table of [+] sums, A067138 for a table of [*] products.

%K nonn,easy,nice

%O 1,4

%A _Marc LeBrun_, Dec 22 2001

%E Edited by _N. J. A. Sloane_, Dec 13 2021

%E Name corrected by _Sean A. Irvine_, Oct 10 2023