python程序尋找十萬以內的K數

在這裏插入圖片描述
程序如下

s={}
for ge in range(10):
    for shi in range(10):
        for bai in range(10):
            for qian in range(10):
                for wan in range(10):
                    for shiwan in range(0,1):
                        n=ge+10*shi+100*bai+1000*qian+10000*wan+100000*shiwan
                        if (n<100):
                        	if((ge+shi)**2==n) and(n!=0):                        		
                        		s[n]=("%d=(%d+%d)**2"%(n,shi,ge))
                        elif (n<1000):
                        	if((ge+bai*10+shi)**2==n):
                        		m=bai*10+shi                        		
                        		s[n]=("%d=(%d+%d)**2"%(n,m,ge))                        		
                        	elif((ge+shi*10+bai)**2==n):
                        		m=ge+shi*10                       		
                        		s[n]=("%d=(%d+%d)**2"%(n,bai,m))
                        elif (n<10000):
                         	if((shi*10+ge+bai+qian*10)**2==n):
                         		m=shi*10+ge
                         		x=bai+qian*10                         		
                         		s[n]=("%d=(%d+%d)**2"%(n,x,m))                         		               
                         	elif((ge+qian*100+bai*10+shi)**2==n):
                         		m=qian*100+bai*10+shi                        		
                         		s[n]=("%d=(%d+%d)**2"%(n,ge,m))                         		
                         	elif((qian+bai*100+shi*10+ge)**2==n):
                         		m=bai*100+shi*10+ge                         		
                         		s[n]=("%d=(%d+%d)**2"%(n,qian,m))                     
                        elif(n<=100000):
                        	if((ge+shi+bai*10+qian*100+wan*1000)**2==n):
                        		m=shi+bai*10+qian*100+wan*1000                        		
                        		s[n]=("%d=(%d+%d)**2"%(n,ge,m))                        	
                        	elif((ge+shi*10+bai+qian*10+wan*100)**2==n):
                        		m=bai+qian*10+wan*100
                        		x=ge+shi*10                        		
                        		s[n]=("%d=(%d+%d)**2"%(n,x,m))                       		
                        	elif((ge+shi*10+bai*100+qian+wan*10)**2==n):
                        		m=ge+shi*10+bai*100
                        		x=qian+wan*10                        		
                        		s[n]=("%d=(%d+%d)**2"%(n,x,m))
                        	elif((ge+shi*10+bai*100+qian*1000+wan)**2==n):
                        		m=ge+shi*10+bai*100+qian*1000
                        		x=wan                        		                      		                 
                       			s[n]=("%d=(%d+%d)**2"%(n,x,m))

for k in sorted(s):
    print(s[k])


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章