19、有二正整數A、B,若所有能整除A的正數之和等於B(包括1,但不包括A
本身);反之亦然,則此二正整數稱為"friendly"。
例如:220及284,
其中能整除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(友善數)
>>>
沒有留言:
張貼留言