必威电竞|足球世界杯竞猜平台

分解質(zhì)因數(shù)
來源:互聯(lián)網(wǎng)

每個(gè)合數(shù)都可以寫成幾個(gè)質(zhì)數(shù)相乘的形式,其中每個(gè)質(zhì)數(shù)都是這個(gè)合數(shù)的因數(shù),把一個(gè)合數(shù)寫成質(zhì)因數(shù)相乘的形式,叫做分解質(zhì)因數(shù)。如30=2×3×5 。分解質(zhì)因數(shù)只針對(duì)合數(shù)(即除1和它本身外,還有因數(shù)的數(shù))。分解質(zhì)因數(shù)的用途極其廣泛,通過分解質(zhì)因數(shù)可以看出這個(gè)合數(shù)可以被哪些數(shù)整除,合數(shù)與合數(shù)之間公約數(shù)公倍數(shù)的關(guān)系等。

定義

把一個(gè)合數(shù)分解成若干個(gè)質(zhì)因數(shù)的乘積的形式,即求質(zhì)因數(shù)的過程叫做分解質(zhì)因數(shù)。

分解質(zhì)因數(shù)只針對(duì)合數(shù)。(分解質(zhì)因數(shù)也稱分解素因數(shù))求一個(gè)數(shù)分解質(zhì)因數(shù),要從最小的質(zhì)數(shù)除起,一直除到結(jié)果為質(zhì)數(shù)為止。分解質(zhì)因數(shù)的算式叫短除法,和除法的性質(zhì)相似,還可以用來求多個(gè)數(shù)的公因式。

定理

不存在最大質(zhì)數(shù)的證明:(使用反證法

假設(shè)存在最大的質(zhì)數(shù)為N,則所有的質(zhì)數(shù)序列為:

設(shè),

可以證明不能被任何質(zhì)數(shù)整除,得出也是一個(gè)質(zhì)數(shù)。

而,與假設(shè)矛盾,故可證明不存在最大的質(zhì)數(shù)

第二種因數(shù)分解的方法:

1975年,John M. Pollard提出。該算法時(shí)間復(fù)雜度為。詳見參考資料。

編程分解

C#

另一種實(shí)現(xiàn)

pascal

Java

Visual Basic

c語言

實(shí)現(xiàn)一

此代碼因?yàn)橛昧薼ong long int,為C99標(biāo)準(zhǔn),故不可在VC6.0上運(yùn)行。

實(shí)現(xiàn)二

可直接在VC6.0運(yùn)行。

C++

Common Lisp

(defun IS系列坦克prime-number (number)

(let ((num number))

(do ((index 2 (1+ index)))

((>= index num) t)

(if (= 0 (MOD num index))

(return-from is-prime-number nil)))))

(defun 矩陣分解quality-factor (number)

(let ((num number) (prime-list (make-array 10 :fill-pointer 0 :adjustable t)))

(if (IS系列坦克prime-number num)

(progn

(format t "~a~%" num)

(return-from decomposition-quality-factor nil)))

(do ((index 2 (1+ index)))

((>= index num) nil)

(if (is-prime-number index)

(push index prime-list)))

(dolist (value prime-list)

(let ((test-flag nil))

(do ()

(test-flag nil)

(if (= 0 (MOD num value))

(progn

(format t "~a~%" value)

(setf num (/ num value))

(if (IS系列坦克prime-number num)

(progn

(format t "~a~%" num)

(return-from 矩陣分解quality-factor nil))))

(setf test-flag t)))))))

Python 2.x

Python 3.x

Bash Shell

批處理

javascripts

參考資料 >

生活家百科家居網(wǎng)