输入一个整数判断它是否为完全数或者水仙数的方法
1个回答
关注
展开全部
方法一:1.将该整数拆分成各位数,比如输入的是153,则将153拆分成1、5、3三个数字;2.计算每个数字的立方和,即153的立方和为1^3+5^3+3^3;3.比较计算出的立方和是否与原数相等,如果相等,则该数为水仙花数;4.如果不相等,则判断该数是否是完全数,即求出数字所有真因子之和,如果相等,则该数为完全数,反之则不是。方法二:1.用一个for循环,从1开始遍历到输入的数,计算该数的真因子之和;2.比较计算出的真因子之和是否与原数相等,如果相等,则该数为完全数;3.将该数拆分成各位数,比如输入的是153,则将153拆分成1、5、3三个数字;4.计算每个数字的立方和,即153的立方和为1^3+5^3+3^3;5.比较计算出的立方和是否与原数相等,如果相等,则该数为水仙花数。
咨询记录 · 回答于2022-12-21
输入一个整数判断它是否为完全数或者水仙数的方法
方法一:1.将该整数拆分成各位数,比如输入的是153,则将153拆分成1、5、3三个数字;2.计算每个数字的立方和,即153的立方和为1^3+5^3+3^3;3.比较计算出的立方和是否与原数相等,如果相等,则该数为水仙花数;4.如果不相等,则判断该数是否是完全数,即求出数字所有真因子之和,如果相等,则该数为完全数,反之则不是。方法二:1.用一个for循环,从1开始遍历到输入的数,计算该数的真因子之和;2.比较计算出的真因子之和是否与原数相等,如果相等,则该数为完全数;3.将该数拆分成各位数,比如输入的是153,则将153拆分成1、5、3三个数字;4.计算每个数字的立方和,即153的立方和为1^3+5^3+3^3;5.比较计算出的立方和是否与原数相等,如果相等,则该数为水仙花数。
下面是实现判断数字是否为完全数或水仙花数的python代码:def is_perfect_number(n): sum = 0 for i in range(1, n): if n % i == 0: sum = sum + i return sum == ndef is_narcissistic_number(n): m = n s = 0 while m > 0: a = m % 10 s = s + a*a*a m = m // 10 return s == n