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