|
|
本帖最后由 〇〇 于 2021-2-19 21:20 编辑
不能一个n算一次,要把它们合在一起。比如+6的几个,+12的几个
(c,d)==(1,1)的个数*12
+(1,2)的个数*24
+(1,3)的个数*36
-(x==0)的个数*3
-(c==d)的个数*3
-n最后一个d是1的个数*(12*1-6)
-n最后一个d是2的个数*(12*2-6)
-n最后一个c平方*6*个数
- >>>> def f3(n):
- .... s=0
- .... for c in range(1,n-1):
- .... w=(c* n)*(-1 - c + n + c* n )
- .... d=int( -1 - c + n + 2* c* n - 2* pow(w,0.5))
- .... if c>d:s-=d*d*6;break
- .... x=(-1-c-d-n)**2-4*n*(1+d)*(1+c)
- .... print(n,c,x,d)
- .... s+=12*d
- .... if x==0:
- .... s-=3
- .... if c!=d:s-=3
- .... if c==d:s-=12*d-6
- .... return s
- ....
- >>>> s=0
- >>>> for i in range(9,26):s+=f3(i)
- (9, 1, 0, 1)
- (10, 1, 9, 1)
- (11, 1, 20, 1)
- (12, 1, 33, 1)
- (13, 1, 48, 1)
- (14, 1, 65, 1)
- (15, 1, 1, 2)
- (16, 1, 16, 2)
- (17, 1, 33, 2)
- (18, 1, 52, 2)
- (19, 1, 73, 2)
- (20, 1, 96, 2)
- (21, 1, 4, 3)
- (22, 1, 25, 3)
- (23, 1, 48, 3)
- (24, 1, 73, 3)
- (25, 1, 100, 3)
- (25, 2, 0, 2)
- >>>> print(s)
- 294
- >>>> m=12*1*6 +12*2*7 +12*3*5 -3 -3 -6*(12*1-6) -(12*2-6) -0*0*6*5 -1*1*6*(6+5)
- >>>> print(m)
- 294
复制代码
|
|