數論 分解質因數

2022-04-04 22:30:41 字數 1007 閱讀 6157

每乙個大於等於2的自然數,均可寫成乙個或多個質數的乘積,例如:

2=2

20=2*2*5

這種將乙個整數分割成若干個質數之積的操作叫做分解質因數。現在,給你乙個整數n,請你編寫乙個程式,對其分解質因數。

輸入為一行,正整數n,保證1

<

n<

2147483647

'>11輸出n的質因數分解形式,格式為 n=p1(e1)p2(e2)p3(e3).... 其中,p1、p2、p3、……為組成n的各個質因子,

滿足p1 < p2 < p3 < ...;e1、e2、e3、……分別為p1、p2、p3、……在n中的指數。

例如:

20=2*2*5
應該輸出成:

20=2(2)5(1)
n的大於sqrt(n)的質因子至多有乙個。(sqrt(n)指n的開方取整)

20
20=2(2)5(1)

思路:分解質因數模板的應用。下面給出模板:(模擬短除法———從最小的質數2除起,一直除到結果為質數為止)

#includeint

main()

} if(n!=1) printf("%d"

,n);

printf("\n

");return0;

}

ac**:

#include #include

using

namespace

std;

intmain()

printf(

"%d(%d)

",i,tmp);}}

if(n!=1) printf("

%d(1)

",n);

printf("\n

");return0;

}

分解質因數

質因數概念 每個合數都可以寫成幾個質數相乘的形式,這幾個質數就都叫做這個合數的質因數。如果乙個質數是某個數的因數,那麼就說這個質數是這個數的質因數。而這個因數一定是乙個質數。演算法原理 先根據需要分解的合數生成乙個質數表。然後依次從小到大依次除合數,每次除之後都將儲存步驟。表達不好,還是看 吧 us...

分解質因數

分解質因數 問題描述 求出區間 a,b 中所有整數的質因數分解。輸入格式 輸入兩個整數a,b。輸出格式 每行輸出乙個數的分解,形如k a1 a2 a3.a1 a2 a3.k也是從小到大的 具體可看樣例 樣例輸入 3 10 樣例輸出 3 34 2 2 5 56 2 3 7 78 2 2 2 9 3 3...

分解質因數

大數的質因數分解一直以來是亟需解決的難題。本文從最基本的試除法開始,分解質因數的方法。下面的程式在開頭定義了乙個巨集opt,如果刪掉這個定義,就可以執行最原始的演算法。一 樸素演算法 include include include using namespace std define opt int...