欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中查找素因數(shù)的方法詳解

 更新時間:2023年10月19日 15:04:27   作者:跡憶客  
這篇文章主要為大家詳細(xì)介紹了如何在 Python 中執(zhí)行素因數(shù)分解,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴可以一起學(xué)習(xí)一下

本篇文章將介紹如何在 Python 中執(zhí)行素因數(shù)分解。

質(zhì)因數(shù)分解概述

在數(shù)學(xué)中,數(shù)字的因子是那些可以除以給定數(shù)字且余數(shù)為零的數(shù)字。

素?cái)?shù)是唯一的數(shù)字,只有兩個因子,一和數(shù)字本身。 此類數(shù)字的一些示例包括 3、7、11、13 等。

質(zhì)因數(shù)分解是指找出所有相乘構(gòu)成原始數(shù)字的質(zhì)數(shù)。 我們可以考慮數(shù)字 6 的一個簡單例子。

該數(shù)的質(zhì)因數(shù)分解產(chǎn)生兩個因數(shù):2 和 3。

在 Python 中查找質(zhì)因數(shù)的不同方法

我們可以通過多種方式找到指定數(shù)字的質(zhì)因數(shù)。 本文將演示下面列出的三種方法:

  • 創(chuàng)建自定義函數(shù)
  • 使用埃拉托斯特尼篩法
  • 使用 primefac 模塊

讓我們從在 Python 中創(chuàng)建自定義函數(shù)開始。

執(zhí)行質(zhì)因數(shù)分解的自定義函數(shù)

在數(shù)學(xué)中,最基本的質(zhì)因數(shù)分解方法是重復(fù)除法。 我們反復(fù)將數(shù)字除以素?cái)?shù)。 我們可以在 Python 中使用嵌套循環(huán)來實(shí)現(xiàn)這一點(diǎn)。

第一個循環(huán)確定一個數(shù)字是否是素?cái)?shù)。 第二個循環(huán)將該素?cái)?shù)與給定數(shù)相除。

如果余數(shù)為零,我們將質(zhì)數(shù)附加到列表中。 該函數(shù)返回最終列表。 請參閱下面的代碼。

def p_factorization(n):
    i = 2
    lst = []
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            lst.append(i)
    if n > 1:
        lst.append(n)
    return lst

print(p_factorization(20))

輸出:

[2, 2, 5]

在上面的示例中,我們返回了 20 的質(zhì)因數(shù)分解。 // 除法運(yùn)算符確保返回的余數(shù)是整數(shù)。

使用埃拉托斯特尼篩法進(jìn)行素因數(shù)分解

埃拉托斯特尼篩法算法返回低于給定數(shù)字的所有素?cái)?shù)。

它標(biāo)記小于給定數(shù)字的值,并且可除以素?cái)?shù)的平方以返回所有小于給定數(shù)字的素?cái)?shù)。

我們可以用它在 Python 中執(zhí)行素因數(shù)分解。 首先,我們找到所需數(shù)字以下的質(zhì)數(shù),然后將它們除以給定的數(shù)字以查看其質(zhì)因數(shù)分解。

請參閱以下代碼圍欄示例:

def sieve_of_erast(number):
    maximum = number+1
    d = dict()
    for i in range(2, maximum): d[i] = True

    for i in d:
        factors = range(i,maximum, i)
        for f in factors[1:]:
            d[f] = False
    lst = [i for i in d if d[i]==True]
    return lst

def p_factorization(number):
    x = number
    res = []
    lst = sieve_of_erast(number)
    i = 0
    while(i < len(lst)):
        if(x%lst[i]==0):
            x = x//lst[i]
            res.append(lst[i])
            i = 0
            if(x == 1):
                break
        else:
            i = i +1
    return res


print(p_factorization(20))

輸出:

[2, 2, 5]

在上面的代碼示例中,我們首先創(chuàng)建一個實(shí)現(xiàn)埃拉托色尼篩法的函數(shù),以查找 20 以下的素?cái)?shù)。

然后我們創(chuàng)建另一個函數(shù),使用這個素?cái)?shù)列表來返回其素?cái)?shù)分解。

使用 primefac 模塊執(zhí)行素因子分解

primefac 模塊用于執(zhí)行有關(guān)素?cái)?shù)的計(jì)算。 它可以有效地處理大量計(jì)算。

我們可以使用該模塊的 primefac() 函數(shù)進(jìn)行素?cái)?shù)分解。 它返回可以使用列表構(gòu)造函數(shù)轉(zhuǎn)換為列表的生成器對象。

請參閱下面的代碼:

import primefac
print(list(primefac.primefac(20)))

輸出:

[2, 2, 5]

到此這篇關(guān)于Python中查找素因數(shù)的方法詳解的文章就介紹到這了,更多相關(guān)Python查找素因數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenCV實(shí)現(xiàn)透視變換的示例代碼

    OpenCV實(shí)現(xiàn)透視變換的示例代碼

    本文主要介紹了OpenCV實(shí)現(xiàn)透視變換的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python 非極大值抑制(NMS)的四種實(shí)現(xiàn)詳解

    Python 非極大值抑制(NMS)的四種實(shí)現(xiàn)詳解

    本文主要介紹了非極大值抑制(Non-Maximum Suppression,NMS)的四種實(shí)現(xiàn)方式,不同方法對NMS速度的影響各不相同,感興趣的小伙伴可以了解一下
    2021-11-11
  • pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn)

    pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn)

    這篇文章主要介紹了pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python3爬蟲學(xué)習(xí)入門教程

    Python3爬蟲學(xué)習(xí)入門教程

    這篇文章主要介紹了Python3爬蟲學(xué)習(xí)入門,簡單介紹了Python3爬蟲的功能、原理及使用爬蟲爬取知乎首頁相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python字符轉(zhuǎn)換

    Python字符轉(zhuǎn)換

    Python提供了ord和chr兩個內(nèi)置的函數(shù),用于字符與ASCII碼之間的轉(zhuǎn)換。
    2008-09-09
  • 如何在Django中設(shè)置定時任務(wù)的方法示例

    如何在Django中設(shè)置定時任務(wù)的方法示例

    這篇文章主要介紹了如何在Django中設(shè)置定時任務(wù)的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python圖像處理庫crop()函數(shù)?thumbnail方法使用詳解

    Python圖像處理庫crop()函數(shù)?thumbnail方法使用詳解

    這篇文章主要為大家介紹了Python圖像處理庫crop()函數(shù)?thumbnail方法使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Python實(shí)現(xiàn)求解括號匹配問題的方法

    Python實(shí)現(xiàn)求解括號匹配問題的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)求解括號匹配問題的方法,涉及Python基于棧的字符串遍歷、判斷、運(yùn)算解決括號匹配相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python單元測試實(shí)例詳解

    Python單元測試實(shí)例詳解

    這篇文章主要介紹了Python單元測試,結(jié)合實(shí)例形式詳細(xì)分析了Python單元測試模塊的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • Django通過json格式收集主機(jī)信息

    Django通過json格式收集主機(jī)信息

    這篇文章主要介紹了基于Django收集主機(jī)信息json格式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05

最新評論