|
|
A152054
|
|
Bouncy numbers (numbers whose digits are in neither increasing nor decreasing order).
|
|
7
|
|
|
101, 102, 103, 104, 105, 106, 107, 108, 109, 120, 121, 130, 131, 132, 140, 141, 142, 143, 150, 151, 152, 153, 154, 160, 161, 162, 163, 164, 165, 170, 171, 172, 173, 174, 175, 176, 180, 181, 182, 183, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 196
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
Number of n-digit bouncy numbers is 9*10^(n-1) - (n+18)*binomial(n+8, 8)/9 + 10. - Altug Alkan, Oct 02 2018
|
|
LINKS
|
|
|
MATHEMATICA
|
Select[Range[0, 200], !LessEqual@@IntegerDigits[#] && !GreaterEqual@@IntegerDigits[#]&] (* Ray Chandler, Oct 25 2011 *)
bnQ[n_]:=Module[{didn=Differences[IntegerDigits[n]]}, Count[didn, _?(#>0&)]>0 && Count[didn, _?(#<0&)]>0]; Select[Range[100, 200], bnQ] (* Harvey P. Dale, Jun 13 2020 *)
|
|
PROG
|
(Python)
a = 1
b = 100
while a != 51:
if str(b) != ''.join(sorted(str(b))) and str(b) != ''.join(sorted(str(b)))[::-1]:
print(b)
a += 1
b += 1
(Python)
from itertools import count, islice
def A152054_gen(startvalue=1): # generator of terms >= startvalue
for n in count(max(startvalue, 1)):
l = len(s:=tuple(int(d) for d in str(n)))
for i in range(1, l-1):
if (s[i-1]-s[i])*(s[i]-s[i+1]) < 0:
yield n
break
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base,easy
|
|
AUTHOR
|
Jerome Abela (Jerome.Abela(AT)gmail.com), Nov 22 2008
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|