python之判断三数(完全数,素数,水仙花数)

1)什么为完全数?
答:完全数(Perfect number),又称完美数或完备数,是一些特殊的bai自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。
2)什么为素数?
答:素数又叫质数(prime number),有无限个bai。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
3)什么为水仙花数?
答:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
注意:我们规定水仙花数为一个三位数,如果需要求更高位数的需要更改代码。

#判断一个正整数是不是完全数
input_a = input("请输入这个数:")
a = int(input_a)
count = 1
suma = 0
while count <= a/2:
    if a % count == 0:
        suma = suma + count
        count = count + 1
    else:
        count = count + 1
if a == suma:
    print("此数为完全数。")
else:
    print("此数不为完全数。")
#判断一个正整数是不是素数
input_b = input("请输入这个数:")
b = int(input_b)
if b < 2:
    print("此数不为素数。")
else:
    while b == 2:
        print("此数为素数。")
        break
    for count in range(2,b):
        if b % count == 0:
            print("此数不为素数。")
            break
        else:
            print("此数为素数。")
            break
#判断一个正整数是不是水仙花数
input_c = input("请输入这个数:")
c = int(input_c)
onedigit = c%10
tendigit = int(c%100/10)
hundreddigit = int(c/100)#如果有千位数就再定义一个千位数
print(onedigit)
print(tendigit)
print(hundreddigit)
if onedigit**3+tendigit**3+hundreddigit**3 == c:
    print("此数为水仙花数。")
else:
    print("此数不为水仙花数。")

这就是判断三数的代码。

你可能感兴趣的:(python)