|
发表于 2018-2-6 09:06:51
|
显示全部楼层
我终于知道你为什么这么写了
第二种情况,我试了一下,输出为0 。
- res = 0
- for q in range(1,10000):
- for r in range(1,q):
- #因为余数r无论如何要小于除数,所以等比数列中r总比q小
- #1,先假设除数q小于商数,所以商数q可以表示为q*(q/r),商数不断增大
- #2,假设除数大于商数,此时再假设商数也大于余数,发现
- #这个时候,这个等式和上面的等式其实是一种方式,
- #所以这两者等式就是一个等式
- n = q**3/r+r
- if (n**0.5)%1 ==0 and n<100000000:
- res += n
- print(n)
- for q in range(1,10000):
- for r in range(q+1,10000):
- #这里假设的第二种情况,商数小于余数,除数此时最大
- #等式表示为 n =q*(r*r/q)+r,简化如下
- n = r*r + r
- if (n**0.5)%1 ==0 and n<100000000:
- res += n
- print(n)
- print(res)
复制代码 |
|