python学习03:缩小范围取值

此博客围绕Python学习展开,重点在于缩小范围取值相关内容,虽未给出具体内容,但可知聚焦于Python编程中取值范围的缩小操作,属于后端开发中Python技术的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python
# -*- coding: utf-8 -*-

'''
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
'''
'''
此题之关键,在于值的取值范围,所以在写代码前,要先弄清楚取值范围.
'''

def test1():
    '''
    x+100=n^2,x+100+168=m^2;
    m^2-n^2=168;
    (m+n)(m-n)=168;m+n=i;m-n=j;
    i*j=168;由于奇奇还是得奇,所以i和j必有一个偶;
    由m+n=i;m-n=j;得i-j=m+n-m+n=2n;i+j=m+n+m-n=2m;n=(i-j)/2;m=(i+j)/2;m,n都是整数,所以,i和j都能被2整除,所以i和j都是偶数
    由于i*j=168,所以i和j是不等的,i!=j,假设j最小是-84,最大则是84,不过,由于-84-0和0-84情况重合,所以i和都取正数部份,所以j最小是2,最大是84,
    又由于13的平方就是169,j一旦大于13,i的值也就<13,此时的i和j与j<13时其实是换位置了,也就是说j<13和j>13的情况是重合的,我们只需要取其中一半就行了.
    由于2-13的范围远远小于13-84,
    因此,2<=j<13,i=168/j,且i%2=0,(168/j)%2==0
    '''
    for j in range(2,13,2):
        if (168/j)%2==0:
            i=168/j
            m = (i + j) / 2
            n = (i - j) / 2
            x = n * n - 100
            print("符合要求的j:",j);#2,4,6,12
            print("符合要求的x:",x);#1581,261,21,-99
            

            
test1()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值