在Python中检查一个数字是否是普洛尼克数(PronicNumber

云课堂学Python 2024-04-03 18:17:00

普洛尼克数(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 = 156count = 0for itr in range(num): if itr * (itr + 1) == num: count = 1 breakif 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 sqrtdef check_pronic(num): sr = int(sqrt(num)) return sr * (sr + 1) == numnum = 156if check_pronic(num): print(num, "是一个普洛尼克数。")else: print(num, "不是一个普洛尼克数。")

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。

0 阅读:0

云课堂学Python

简介:感谢大家的关注