n,求其素因子分解結果,即給出其因式分解表示式 n=
p1
k
1
⋅p
2
k2
⋯
pm
k
m
。輸入long int範圍內的正整數 n。
按給定格式輸出n的素因式分解表示式,即n=p1^k1*p2^k2*…*pm^km
,其中pi
為素因子並要求由小到大輸出,指數ki
為pi
的個數;當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行,每行對應乙個測試例,包...