毕氏完美数

概要

回顾完美数,自守数,水仙花数,根号2感受最美公式。

2 \sqrt{2} 2

毕达哥拉斯创立了一个研究天文、几何、数论及音乐的秘密教团。他们本来想要把整个世界都化为数字,但是却找不到任何一条线段能够用来同时度量正方形的对角线与边,于是这个梦想破灭了。是他们发现了 2 \sqrt{2} 2

毕氏完美数无理数的代数证明

无法接受自己发现的 2 \sqrt{2} 2 ,挣扎几百年后最终消失了。但 2 \sqrt{2} 2 的图形证明,最大公度量对后面的求最大公约数很有帮助。这种直尺和圆规的操作还产生了三分律。

a = b , a < b , a > b a=b,a<b,a>b a=b,a<b,a>b

三分律经常出现在代码中。

判断完美数

因子相加等于自己的数,包括1,但不含自己。比如 6 [1, 2, 3],28 [1, 2, 14, 4, 7],496 [1, 2, 248, 4, 124, 8, 62, 16, 31]

def isperfect(n):
    '''
    因子相加等于自己的数,包括1,但不含自己
    6 [1, 2, 3]
    28 [1, 2, 14, 4, 7]
    496 [1, 2, 248, 4, 124, 8, 62, 16, 31]

    '''
    if n <= 1:
        return False, 1
    s = 1
    X = [1]
    for x in range(2, n//2):
        if n % x == 0 and x not in X:#成对添加的,后面的数字可能在前面添加过了
            #print(n / x, X)
            s = int(s + x + n/x)
            X.append(x)
            X.append(int(n / x))
    return s - n == 0, X

验证

======
isperfect(28)
(True, [1, 2, 14, 4, 7])
isperfect(228)
(False, [1, 2, 114, 3, 76, 4, 57, 6, 38, 12, 19])

自守数

平方尾数等于自己的数是自守数。就是平方求余10,100,1000…(10位数的幂)等于自己的数。比如5,平方25的个位是5;25的平方625的尾数是25。

print("the conservative number in 1000",[n for n in range(1, 1000) if (n * n) % (10 ** len(str(n))) == n])

验证

the conservative number in 1000 [1, 5, 6, 25, 76, 376, 625]

程序求了一千以内的自守数。

水仙花数

自幂数是指一个 n 位数,它每位上的数字的 n 次幂之和等于它本身。
同类的还有独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数

代码

    def f(n):
        for i in range(10**(n - 1), 10**n):
            sum = 0
            temp = i
            #0也是False,None,"",(),[],{}
            while temp:
                sum += (temp%10) ** n
                temp = int(temp/10)
            if sum == i:
                print(i)

验证

for n in range(1,10):f(n)
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
54748
92727
93084
548834
1741725
4210818
9800817
9926315
24678050
24678051
88593477
146511208
472335975
534494836
912985153

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值