接受乙個整型作為引數,返回該整數所有素數因子的列表

2021-08-15 10:39:35 字數 1367 閱讀 1970

#/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 ...