PTA 素因子分解

2021-08-18 13:55:45 字數 1049 閱讀 8367

n,求其素因子分解結果,即給出其因式分解表示式 n=

p​1​

​​k​

1​​​

​⋅p​

2​​​

k​2​

​​​⋯

p​m​

​​k​

m​​​

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

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

1323
1323=3^3*7^2

#include#include#include#includeusing namespace std;

int main()

; for (int i = 2; i < 100; i++) }

long n;

cin >> n;

cout << n << "=";

while (1)

}if (n == t)

}int sum = 1;

for (int q = 0; q < p.size()-1; q++)

}} if (sum == 1)

cout << p[p.size() - 1] ;

else

cout << p[p.size() - 1] << "^" << sum;

return 0;

}

演算法分析:

(1)先用素數篩找到前10000項的素數當除數用

(2)用乙個無限迴圈尋找素因子,當n本身不發生變化時退出迴圈,即n為1或者沒有素因子

(3)將之前得到的素因子存入乙個陣列中,遇到前後不同的輸出,否則sum++,sum為係數的指數,1的時候不用輸出

PTA 7 15 素因子分解

7 15 素因子分解 20 分 給定某個正整數 n,求其素因子分解結果,即給出其因式分解表示式 n p 1 k 1 p 2 k 2 p m k m 輸入long int範圍內的正整數 n。按給定格式輸出n的素因式分解表示式,即n p1 k1 p2 k2 pm km,其中pi為素因子並要求由小到大輸出...

PTA 7 9 素因子分解

給定某個正整數 n,求其素因子分解結果,即給出其因式分解表示式 n p1的k1次方 p2的k2次方 pm的km次方 輸入long int範圍內的正整數 n。按給定格式輸出n的素因式分解表示式,即 n p1k1 p2k2 pm km,其中pi為素因子並要求由小到大輸出,指數ki為pi的個數 當ki為1...

分解素因子

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