- n=200
- s=[]
- for i in range(1,n+1):
- m=3*int(((4*i-3)**0.5+1)/6)+1
- x,y=(i-3)//m-(m-3),(i-3)%m-1
- z=int(1+(3*(x%6))/2)
- w=z*10**(m//3)
- if y>-1: w+=(3*(y%3)+z%3)*10**(y//3)
- s.append(w)
- print(s)
复制代码
[1, 2, 4, 5, 7, 8, 10, 11, 14, 17, 20, 22, 25, 28, 40, 41, 44, 47, 50, 52, 55, 58, 70, 71, 74, 77, 80, 82, 85, 88, 100, 101, 104, 107, 110, 140, 170, 200, 202, 205, 208, 220, 250, 280, 400, 401, 404, 407, 410, 440, 470, 500, 502, 505, 508, 520, 550, 580, 700, 701, 704, 707, 710, 740, 770, 800, 802, 805, 808, 820, 850, 880, 1000, 1001, 1004, 1007, 1010, 1040, 1070, 1100, 1400, 1700, 2000, 2002, 2005, 2008, 2020, 2050, 2080, 2200, 2500, 2800, 4000, 4001, 4004, 4007, 4010, 4040, 4070, 4100, 4400, 4700, 5000, 5002, 5005, 5008, 5020, 5050, 5080, 5200, 5500, 5800, 7000, 7001, 7004, 7007, 7010, 7040, 7070, 7100, 7400, 7700, 8000, 8002, 8005, 8008, 8020, 8050, 8080, 8200, 8500, 8800, 10000, 10001, 10004, 10007, 10010, 10040, 10070, 10100, 10400, 10700, 11000, 14000, 17000, 20000, 20002, 20005, 20008, 20020, 20050, 20080, 20200, 20500, 20800, 22000, 25000, 28000, 40000, 40001, 40004, 40007, 40010, 40040, 40070, 40100, 40400, 40700, 41000, 44000, 47000, 50000, 50002, 50005, 50008, 50020, 50050, 50080, 50200, 50500, 50800, 52000, 55000, 58000, 70000, 70001, 70004, 70007, 70010, 70040, 70070, 70100, 70400, 70700, 71000, 74000, 77000, 80000, 80002, 80005] |