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.
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
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.
Links
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
Comments