演算法訓練 素因子去重
時間限制:1.0s 記憶體限制:256.0mb
問題描述
給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1
輸入格式
乙個整數,表示n
輸出格式
輸出一行,包含乙個整數p。
樣例輸入
1000
樣例輸出
10資料規模和約定
n<=10^12
樣例解釋:n=1000=2^353,p=2*5=10
題解:題目的樣例解釋有問題,應該是2^3*5^3才等於1000,所以道題根本在於求素因子,然後去重
(如n=60. 當 i = 2 時,n變成了15,當i = 4時(i = 3是質數不用考慮),n的因子是不包含2的,所以更不可能包含4,如此類推.....)
**注意:當從最小質因子去重之後後面較小的非質數就不可能成為他的因子。所以說最後他的因子都是質數。**
#include
#define ll long long
using namespace std;
intmain
(int argc,
char
** ar**)}if
(n >1)
res *
= n;
cout << res;
return0;
}
演算法訓練 素因子去重
題目鏈結 問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 分析 之前寫了需要判斷是素數 雖然通過了 後面發現是不需要判斷的。因為當你每次去掉乙個素因子後,這個因子的倍數就會不存在了。這個和素數篩選差不多,只不過素數篩選是標記,這裡是刪除。因為i從最...
演算法訓練 素因子去重
傳送門 url 題目 問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 輸入格式 乙個整數,表示n 輸出格式 輸出一行,包含乙個整數p。樣例輸入 樣例輸出 資料規模和約定 n 10 12 樣例解釋 n 1000 2 3 5 3,p 2 5 10 思路...
演算法訓練 素因子去重
時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 輸入格式 乙個整數,表示n 輸出格式 輸出一行,包含乙個整數p。樣例輸入 樣例輸出 資料規模和約定 n 10 12 樣例解釋 n 1000 2 3 5 ...