在 Python 中检查一个数字是否是普洛尼克数(Pronic Number)¶
普洛尼克数(Pronic Number)又名欧波朗数(Oblong number),是指两个连续非负整数之积的自然数,即n(n+1)。
方法1:¶
从 1 迭代到给定数字。对于每个循环变量 itr,检查 itr * (itr + 1),如果该值等于给定数字本身,那么给定数字是一个普洛尼克数。
算法:
将待检测数字存储在变量 num。
设置一个变量,count = 0。
使用 for 循环从 0 循环遍历到上述给定的数字 num。
在循环中,使用 if 条件语句检查循环变量和循环变量的值 +1 的乘积是否等于给定的数字 num。
如果语句为 True,则设置 count = 1,然后跳出循环。
使用 if 条件语句检查 count == 1。
如果语句为 True,则输出是一个普洛尼克数。
否则,输出不是一个普洛尼克数。
num = 156
count = 0
for itr in range(num):
if itr * (itr + 1) == num:
count = 1
break
if count == 1:
print(num, "是一个普洛尼克数。")
else:
print(num, "不是一个普洛尼克数。")
方法2:¶
优化代码,找到数字的平方根,将平方根转换为整数。如果这个整数和它旁边的数字相乘等于给定的数字,它就是一个普洛尼克数。
算法:
自定义函数 check_pronic(num) 检查普洛尼克数。
自定义函数中,计算数字 num 的平方根,取整后存储在变量 sr 。
如果 sr 和 sr + 1 的乘积等于数字,则返回 True,否则返回 False。
在循环中,使用 if 条件语句检查循环变量和循环变量的值 +1 的乘积是否等于给定的数字 num。
如果语句为 True,则设置 count = 1,然后跳出循环。
将待检测数字存储在变量 num。
使用 if 条件语句检查 check_pronic(num)。
如果语句为 True,则输出是一个普洛尼克数。
否则,输出不是一个普洛尼克数。
from math import sqrt
def check_pronic(num):
sr = int(sqrt(num))
return sr * (sr + 1) == num
num = 156
if check_pronic(num):
print(num, "是一个普洛尼克数。")
else:
print(num, "不是一个普洛尼克数。")
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。