實驗專案2 7 素因子分解

2021-07-15 10:51:03 字數 1087 閱讀 4119

給定某個正整數n,求其素因子分解結果,即給出其因式分解表示式 n = p1^k1 * p2^k2 *…*pm ^km。

輸入格式說明:

輸入long int範圍內的正整數n。

輸出格式說明:

按給定格式輸出n的素因式分解表示式,即 n = p1^k1 * p2^k2 *…*pm ^km,其中pi為素因子並要求由小到大輸出,指數ki為pi的個數;當ki==1即因子pi只有乙個時不輸出ki。

序號 輸入 輸出

1 1024

1024=2^10

2 1323

1323=3^3*7^2

3 97532468

97532468=2^2*11*17*101*1291

4 1

1=1

5 3

3=3

第一種方法:非遞迴程式。

#include

int isprime(int n)

return1;}

int main()

if(1==count)

printf("2");

else

if(count>1)

printf("2^%d",count);

for(i=3;i*i

<=n;i=i+2)

if(1==count)

else if(count>1)

}printf("\n");

}}第二種方法:遞迴演算法

//感覺遞迴寫的有點複雜,還不如非遞迴

#include

int count;//輸出素因子的專案數

int isprime(int n)

return1;}

void fenjie(int remain,int start,int num)

else

if(i*i

<=remain)

if(num==1)

else

if(num>1)

}fenjie(remain,i+1,0);

}}int main()

return

0;}

2 7 素因子分解 20 分

給定某個正整數 n,求其素因子分解結果,即給出其因式分解表示式 輸入格式 輸入long int範圍內的正整數 n。輸出格式 按給定格式輸出n的素因式分解表示式,即 輸入樣例 1323輸出樣例 1323 3 3 7 2我的 include using namespace std long int n ...

分解素因子

time limit 1500ms memory limit 10000k 有疑問?點這裡 假設x是乙個正整數,它的值不超過65535 即1 x 65535 請編寫乙個程式,將x分解為若干個素數的乘積。輸入的第一行含乙個正整數k 1 k 10 表示測試例的個數,後面緊接著k行,每行對應乙個測試例,包...

素因子分解

每乙個大於1的正整數都可被唯一的寫成素數的乘積。證明過程有點複雜,但是道理還是很容易講通的,因為每個大於1的數都有乙個素因子,因此我們先用最小的素數2分解 如果因數有2的話 直到不能分解時,選用下乙個素數繼續分解。以780為例,此時得到780 2 360,對360還可以進行3次公因數2的提取,得到4...