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