输入一个整数n,计算出大于n并且加上168后是一个完全平方数的最小数并输出。
样例输入:1
样例输出:28
你题目的解答代码如下:
import math
n = int(input())
while True:
n += 1
a = math.sqrt(n+168)
if a==int(a):
break
print(n)
如有帮助,望采纳!谢谢!
【有帮助请采纳】
from math import sqrt#引入sqrt(开平方)函数,方便于后面的计算
n = int(input())#输入的整数n
while 1:#无限循环
n +=1#保证计算的数大于n,并且每次循环都加一
if isinstance(int,sqrt(n+168)):#如果n+168开平方是个整数,则n+168是个完全平方数
print(n)#满足条件,输出n
break#满足条件时停止循环
说明:
isinstance() 函数可以判断一个值的类型
更多关于 isinstance() 函数的知识,请戳:https://www.runoob.com/python/python-func-isinstance.html
判断n+168是一个完全平方数还可以用的方法有:
法一:
if sqrt(n+168)==int(sqrt(n+168)):#n+168开平方后的值与取整后的它自己相同
法二:
if sqrt(n+168)%1==0:#n+168开平方后的值对1进行取余运算后的结果为零
法三:
if type(sqrt(n+168))==int:#n+168开平方后的值的类型为整型
【有帮助请采纳】
有帮助请采纳,谢谢
def myfunc(n: int) -> int:
while True:
n = n + 1
import math
a=math.sqrt(n+168)
if a==int(a):
break
return n
print(myfunc(1))