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.

A354078 Squares k that are not divisible by 10, and whose reverse and digit sum are also squares, such that the digit sum divides both k and its reverse.

Original entry on oeis.org

1, 4, 9, 144, 441, 10404, 12321, 40401, 69696, 1004004, 1022121, 1212201, 4004001, 4088484, 4848804, 100040004, 100220121, 102030201, 121022001, 400040001, 400880484, 404492544, 420578064, 445294404, 460875024, 484088004, 617323716, 10000400004, 10002200121
Offset: 1

Views

Author

Keywords

Comments

Palindromic terms include 12321, 69696, 102030201, 617323716.
144, 10404, 1004004, 100040004, 10000400004, 1000004000004, ... are all terms, so the sequence is infinite.
From Jon E. Schoenfield, May 20 2022: (Start)
Among the 3358 terms < 10^21, several classes of terms are rare or nonexistent:
- no term has an even number of digits
- no term begins or ends with a 5
- no term begins with 18 or 92
- no term that begins with 16 has any digit other than 9 as its third digit
- only one term (420578064) begins with 42, and only one (460875024) begins with 46
- only one term (9488660854689) begins with 94, and only one (9864580668849) begins with 98
- only two terms begin or end with a 6: 69696 and 617323716 (each of which is a palindrome)
- only three terms begin with a 9 and end with anything other than a 1: 9, 9488660854689, and 9864580668849
Do there exist any terms > 10^21 of any of these classes?
(End)

Examples

			10404 and its reverse, 40401 are terms because both are squares,
10404 = 102^2 and 40401 = 201^2, both have digit sum 9 and digit sum divides both 10404 and its reverse. 10404/9 = 1156, and 40401/9 = 4489.
		

Crossrefs

Subsequence of A061457.

Programs

  • C
    int get_digit_sum(int integer, int *reverse)
    {
        int sum = 0;
        int rev_num = 0;
        int num = integer;
        int rem = 0;
        while (num != 0) {
            rem = num % 10;
            sum += rem;
            num = num / 10;
            rev_num = 10*rev_num + rem;
        }
        *reverse = rev_num;
        return sum;
    }
    int is_square(int integer)
    {
        int mid = (int)(sqrt(integer));
        if ((mid*mid) == integer) {
            return mid;
        }
        else {
            return 0;
        }
    }
    int main(int argc, char *argv[])
    {
       int reverse = 0;
       for (int j = 1; j <= 100011; j++) {
           if (j % 10 == 0) {
               continue;
           }
           int i = j*j;
           int digit_sum = get_digit_sum(i, &reverse);
           if ((i % digit_sum == 0) && (reverse % digit_sum == 0) &&
                    (is_square(digit_sum) != 0) && (is_square(reverse) != 0)) {
               printf("%d, ", i);
           }
       }
       printf("\n");
       return 0;
    }
    
  • Magma
    J:=100011; a:=[]; for j in [1..J] do if j mod 10 ne 0 then k:=j^2; I:=Intseq(k); s:=&+I; if (k mod s eq 0) and IsSquare(s) then r:=Seqint(Reverse(I)); if (r mod s eq 0) and IsSquare(r) then a[#a+1]:=k; end if; end if; end if; end for; a; // Jon E. Schoenfield, May 19 2022
  • PARI
    isok1(k) = if (k % 100, my(s=sumdigits(k), q=k/s); issquare(s) && issquare(q) && (denominator(q)==1));
    isok(k) = isok1(k) && isok1(fromdigits(Vecrev(digits(k)))); \\ Michel Marcus, May 17 2022