在 Python 中检查一个数字是否是阳光数(Sunny Number)¶
给定一个数字 N,如果数字的下一个数 N+1 是另一个数的完全平方数,则称该数 N 为阳光数(Sunny Number)。
方法1:¶
算法:
将待检测数字存储在变量 num1。
找到给定数字的下一个数 num1 + 1,将其存储在变量 num2。
使用 math.sqrt() 函数计算 num2 的平方根,并将其存储在变量 sqrt_num。
计算 sqrt_num 的平方,并将其存储在变量 square_num。
使用 if 条件语句判断 square_num、num2 是否相等。
如果语句为 True,则输出给定的数字是一个阳光数。
如果为 False,则输出给定的数字不是一个阳光数。
import math
num1 = 3
num2 = num1 + 1
sqrt_num = math.sqrt(num2)
square_num = sqrt_num * sqrt_num
if square_num == num2:
print(num1, "是一个阳光数。")
else:
print(num1, "不是一个阳光数。")
方法2:¶
算法:
自定义函数 isPerfectSquare(x),检测数字是否是一个完全平方数。
isPerfectSquare(x) 中,计算参数的平方根,判断平方根是不是一个整数。
自定义函数 checkSunnyNumber(N),检测数字是否是一个阳光数。
checkSunnyNumber(N) 中,调用 isPerfectSquare(x)函数,检测下一个数是不是完全平方数。
如果语句为 True,则输出给定的数字是一个阳光数。
如果为 False,则输出给定的数字不是一个阳光数。
from math import *
def isPerfectSquare(x):
sr = sqrt(x)
return (sr - floor(sr)) == 0
def checkSunnyNumber(N):
if isPerfectSquare(N + 1):
print(N, "是一个阳光数。")
else:
print(N, "不是一个阳光数。")
N = 8
checkSunnyNumber(N)
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。