1020 分解質因數

2022-04-18 01:21:13 字數 892 閱讀 3569

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

2=2

20=2*2*5

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

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

<

n<

2147483647

'>1輸出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)

#includeusing

namespace

std;

bool mark[5000001

];int prime[5000001

];int num[5000001]=;

intprimesize;

void

init()

}}int

main()

while(n%prime[i]==0

); }

}for(int i=0;i)

}return0;

}

總是有兩個用例通不過,很奇怪。

014 分解質因數

題目 將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5。程式分析 對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完成 1 如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。2 如果n k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整...

程式4 分解質因數

分解質因數就是將乙個合數分解成幾個質數 也叫素數 的乘積的形式。如 6 2 3 基本思路 從i 2到sqrt n 遍歷,如果n i 0,則表示i是n的乙個因子,然後再看這個i是不是素數 即質數 如果是,則列印,並使n n i。然後i再從2開始。bool isprime int m return tr...

程式3 分解質因數

題目 將乙個大於2正整數分解質因數。例如輸入6,6 23,輸入90,90 2335.程式分析 對 n 進行分解質因數,應先找到乙個最小的質數 k,然後按下述步驟完成 1 如果這個質數恰等於 n,則說明分解質因數的過程已經結束,列印出即可。2 如果 n k,但 n 能被 k 整除,則應列印出 k 的值...