2016年8月25日 星期四

python 程式設計50題測試範例-19

19、有二正整數AB,若所有能整除A的正數之和等於B(包括1,但不包括A
   本身);反之亦然,則此二正整數稱為"friendly"

    例如:220284
           其中能整除220之數有:
             1+2+4+5+10+11+20+22+44+55+110=284
         能整除284的有:
             1+2+4+71+142=220
    試設計一程式,找出所有成"friendly"關係的正整數組,且此正整數組

   中的兩個數均小於500

程式:
#coding=utf8

#functiom f() 計算因數和

def f(n):
     i=0
     Sum=0
     for i in range (1,n-1) :
         if (n%i==0):
             Sum=Sum+i
     return Sum


print("19、友善數:")
print("      有二正整數A、B,若所有能整除A的正數之和等於B (包括1,但不包括A本身); ")
print("      反之亦然,則此二正整數稱為friendly(友善數)。")
print()
print("試設計一程式,找出所有成friendly關係的正整數組,且此正整數組中的兩個數均小於500。")
print("【範例】: 220及284互為友善數, 因為能220的因數和為:1+2+4+5+10+11+20+22+44+55+110=284 ")
print("                                    而284因數和為:1+2+4+71+142=220 ")

print("      輸出範例一 ")
print("          6和6    ")
print("         28和28   ")
print("        220和284  ")
print("        284和220  ")
print("        496和496  ")
print("=========================")

for i in range(1,500):
   if (i==f(f(i))):
       print(i,"和",f(i),"關係為friendly(友善數)")
          

結果:
>>> 
================= RESTART: D:/程式語言 Python 入門/50題/Ex50-19.py =================
19、友善數:
      有二正整數A、B,若所有能整除A的正數之和等於B (包括1,但不包括A本身); 
      反之亦然,則此二正整數稱為friendly(友善數)。

試設計一程式,找出所有成friendly關係的正整數組,且此正整數組中的兩個數均小於500。
【範例】: 220及284互為友善數, 因為能220的因數和為:1+2+4+5+10+11+20+22+44+55+110=284 
                                    而284因數和為:1+2+4+71+142=220 
      輸出範例一 
          6和6    
         28和28   
        220和284  
        284和220  
        496和496  
=========================
6 和 6 關係為friendly(友善數)
28 和 28 關係為friendly(友善數)
220 和 284 關係為friendly(友善數)
284 和 220 關係為friendly(友善數)
496 和 496 關係為friendly(友善數)
>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...