# 题目 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
# 程序分析 因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:
n = 0
while (n+1)**2-n*n<=168:
n += 1
print(n+1)
# 思路是:最坏的结果是n的平方与(n+1)的平方刚好差168,由于是平方的关系,不可能存在比这更大的间隙。
# 至于判断是否是完全平方数,最简单的方法是:平方根的值小数为0即可。
# 结合起来:
n=0
while (n+1)**2-n*n<=168:
n+=1
for i in range((n+1)**2):
if i**0.5==int(i**0.5) and (i+168)**0.5==int((i+168)**0.5):
print(i-100)
# Python 平方根
#
# 平方根,又叫二次方根,表示为〔√ ̄〕,如:数学语言为:√ ̄16=4。语言描述为:根号下16=4。
#
# 以下实例为通过用户输入一个数字,并计算这个数字的平方根:
# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
num = float(input('请输入一个数字: '))
num_sqrt = num ** 0.5
print(' %0.3f 的平方根为 %0.3f' % (num, num_sqrt))
# 执行以上代码输出结果为:
#
# $ python test.py
# 请输入一个数字: 4
# 4.000 的平方根为 2.000
# 在该实例中,我们通过用户输入一个数字,并使用指数运算符 ** 来计算该数的平方根。
#
# 该程序只适用于正数。负数和复数可以使用以下的方式:
# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# 计算实数和复数平方根
# 导入复数数学模块
import cmath
num = int(input("请输入一个数字: "))
num_sqrt = cmath.sqrt(num)
print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(num, num_sqrt.real, num_sqrt.imag))
# 执行以上代码输出结果为:
#
# $ python test.py
# 请输入一个数字: -8
# -8 的平方根为 0.000+2.828j
# 该实例中,我们使用了 cmath (complex math) 模块的 sqrt() 方法。