#/use/bin/env python
#-*-coding:utf-8-*-
"this is a custom module"
import math
def isprime(num):
if num <= 1:
return false
value = int(math.sqrt(num) + 1)
for n in range(2, value):
if num % n == 0:
break
else:
return true
return false
def getfactor***(num):
"""接受乙個整型作為引數,
返回它所有約數的列表,
包括1和本身
"""if num <= 0:
return none
factors = [n for n in range(1, num+1) if (num % n == 0)]
return factors
def primefactordecompose(num):
"""素數因子分解
接受乙個整型作為引數,返回該整數所有素數因子的列表。
這個過程叫做求素因子分解,它輸出的所有因子之積應該是原來的數字。
注意列表裡可能有重複的元素。例如輸入20,返回結果應該是[2,2,5]
"""factors = getfactor***(num)
prime_list =
for n in factors:
if isprime(n):
if len(prime_list) == 0:
return none
result =
product_ = 1
for p in prime_list:
product_ *= p
if product_ != num:
v = num / product_
#再次分解
temp_value = primefactordecompose(v)
if temp_value is not none:
result += temp_value
return result
if __name__ == '__main__':
print primefactordecompose(20)
print primefactordecompose(128)
print primefactordecompose(280)
print primefactordecompose(1000)
C 中乙個函式作為作為另乙個函式的引數
把函式名作為引數就是函式的位址了.要將函式名作為引數,需要使用函式指標。函式指標的定義格式為 ret type var name arg list 表示返回值為ret type,引數列表為arg list的函式指標var name.如int p int,int 表示返回值為int,引數為兩個int型...
乙個函式作為另乙個函式的引數
函式的作為變數分裝到另一函式裡面 上面的函式是求乙個定義域能被3正處的數,首先可以想到的是0到100之間內能被3整除的數吧。這個應該很簡單,如下。這裡可以思考的是某個定義域,也就是說上面的i 0和i 100都應該是不確定的值,也就是變數,現在可以定義乙個函式,function checkout st...
乙個函式如何返回多個引數
乙個函式返回多個引數的方法主要有以下幾種 1.用指標 2.用引用 3.用結構體 4.用stl中的pair 請參考這篇部落格 下面針對 對這四種方法進行說明 include include using namespace std typedef struct aaa aaa void fun int ...