login
4-digit numbers (with leading zeros supplied where necessary) in which the sum of the number consisting of the first two digits and the number consisting of the last two digits equals the number consisting of the middle two digits.
1

%I #29 Jan 25 2021 20:15:01

%S 0,109,110,219,220,329,330,439,440,549,550,659,660,769,770,879,880,

%T 989,990,1208,1318,1428,1538,1648,1758,1868,1978,2307,2417,2527,2637,

%U 2747,2857,2967,3406,3516,3626,3736,3846,3956,4505,4615,4725,4835,4945,5604,5714,5824,5934,6703,6813,6923,7802,7912,8901

%N 4-digit numbers (with leading zeros supplied where necessary) in which the sum of the number consisting of the first two digits and the number consisting of the last two digits equals the number consisting of the middle two digits.

%C 0 can be a leading digit.

%D George Bredehorn, The Giant Book of Puzzles, Main Street, 2013, page 12.

%H Aresh Pourkavoos, <a href="http://mathtician.weebly.com/an-integer-sequence.html">Website with C code to generate sequence</a>

%F The sequence contains stretches where, for some n, a(n) - a(n-1) = 110.

%e Since 19 + 78 = 97, 1978 is a term.

%t fQ[n_] := Block[{d = PadLeft[IntegerDigits@ n, 4]}, FromDigits@ d[[1 ;; 2]] + FromDigits@ d[[3 ;; 4]] == FromDigits@ d[[2 ;; 3]]]; Select[Range[0, 10^4 - 1], fQ] (* _Michael De Vlieger_, Oct 26 2015 *)

%o (C)

%o #include <stdio.h>

%o int main(){

%o int e = 10; // what base we are using: experiment with different values (values above 10 do not work well)

%o for (int a = 0; a < e; a++){ // I know these nested loops are inelegant, but they're the easiest way

%o for (int b = 0; b < e; b++){

%o for (int c = 0; c < e; c++){

%o for (int d = 0; d < e; d++){

%o if ((10*a)+b+(10*c)+d == (10*b)+c){ // if the number formed by the first two digits plus the number formed by the last two digits equals the number formed by the middle two digits

%o if (e <= 10){

%o printf("%d%d%d%d, ", a, b, c, d); // print the number

%o }

%o else{

%o printf("%d %d %d %d, ", a, b, c, d); // print the number with extra spaces

%o }

%o }

%o }

%o }

%o }

%o }

%o printf("\n");

%o return 0;

%o }

%o (PARI) is(n) = n < 10000 && n%100 + n \ 100 == (n \ 10) % 100 \\ _David A. Corneth_, Oct 14 2017

%o (Python)

%o def ok(n): return (n//100) + (n%100) == (n//10)%100

%o print([m for m in range(10000) if ok(m)]) # _Michael S. Branicky_, Jan 25 2021

%Y Cf. A293686.

%K base,easy,fini,full,nonn

%O 1,2

%A _Aresh Pourkavoos_, Oct 11 2015