cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

Showing 1-2 of 2 results.

A330270 a(n) is the least nonnegative integer k such that n XOR k is a square (where XOR denotes the bitwise XOR operator).

Original entry on oeis.org

0, 0, 2, 2, 0, 1, 2, 3, 1, 0, 3, 2, 5, 4, 7, 6, 0, 1, 2, 3, 4, 5, 6, 7, 1, 0, 3, 2, 5, 4, 7, 6, 4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, 8, 9, 10, 11, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1
Offset: 0

Views

Author

Rémy Sigrist, Dec 08 2019

Keywords

Comments

This sequence has similarities with A329794 as the XOR operator and the "box" operator defined in A329794 both map (n, n) to 0 for any n (however here we accept 0 as a square).

Examples

			For n = 7,
- 7 XOR 0 = 7 (not a square),
- 7 XOR 1 = 6 (not a square),
- 7 XOR 2 = 5 (not a square),
- 7 XOR 3 = 4 = 2^2,
- hence a(7) = 3.
		

Crossrefs

See A330271 for the cube variant.

Programs

  • Mathematica
    A330270[n_] := Module[{k = -1}, While[!IntegerQ[Sqrt[BitXor[n, ++k]]]]; k];
    Array[A330270, 100, 0] (* Paolo Xausa, Feb 19 2024 *)
  • PARI
    a(n) = for (k=0, oo, if (issquare(bitxor(n, k)), return (k)))
    
  • Python
    from itertools import count
    from sympy.ntheory.primetest import is_square
    def A330270(n): return next(k for k in count(0) if is_square(n^k)) # Chai Wah Wu, Aug 22 2023

Formula

a(n) = 0 iff n is a square.
a(a(n)) <= n.

A329795 a(n) = smallest positive k such that scan_diff(k,n) is a square, where scan_diff is defined in the Comments.

Original entry on oeis.org

2, 1, 2, 3, 1, 2, 3, 4, 5, 3, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 1, 2, 1, 2, 3, 4, 5, 1, 2, 3, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 1, 2, 1, 2, 3, 4, 5, 6
Offset: 1

Views

Author

N. J. A. Sloane, Dec 07 2019

Keywords

Comments

Write i, j in base 10 aligned to right, say
i = bcd...ef
j = .gh...pq
Then scan_diff(i,j) = |b-0| + |c-g| + |d-h| + ... + |e-p| + |f-q|.
Example: scan_diff(12345,909) = 1+2+6+4+4 = 17.
Suggested by the definition of "box" in A329794.

Examples

			For n = 1 the smallest k producing a square is 2 (as scan_diff(1,2) = 1);
For n = 2 the smallest k producing a square is 1 (as scan_diff(2,1) = 1);
For n = 3 the smallest k producing a square is 2 (as scan_diff(3,2) = 1);
For n = 5 the smallest k producing a square is 1 (as scan_diff(5,1) = 4);
For n = 16 the smallest k producing a square is 3 (as scan_diff(16,3) = 1+3 = 4).
		

Crossrefs

Cf. A329794.

Programs

  • PARI
    scan_diff(n,k) = if (n*k, scan_diff(n\10,k\10)+abs((n%10)-(k%10)), n+k)
    a(n) = for (k=1, oo, my (t=scan_diff(n,k)); if (t && issquare(t), return (k))) \\ Rémy Sigrist, Dec 08 2019

Extensions

More terms from Rémy Sigrist, Dec 08 2019
Showing 1-2 of 2 results.