演算法訓練 素因子去重

2021-09-10 09:58:32 字數 699 閱讀 9979

題目鏈結

問題描述

給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1

分析:之前寫了需要判斷是素數(雖然通過了);後面發現是不需要判斷的。因為當你每次去掉乙個素因子後,這個因子的倍數就會不存在了。這個和素數篩選差不多,只不過素數篩選是標記,這裡是刪除。

因為i從最小的質因子2開始並且每次迴圈結束得到的新的n都已經不再包含上乙個質因子i,所以下一次滿足整除條件的i(能被n整除的i)一定還是質數.(如n=60. 當 i = 2 時,n變成了15,當i = 4時(i = 3是質數不用考慮),n的因子是不包含2的,所以更不可能包含4,如此類推.....)

#include using namespace std;

int main(int argc, char** ar**)

}

cout<< p*n<< '\n';

return 0;

}

輸入格式

乙個整數,表示n

輸出格式

輸出一行,包含乙個整數p。

樣例輸入

樣例輸出

資料規模和約定

n<=10^12

樣例解釋:n=1000=2^3*5*3,p=2*5=10

演算法訓練 素因子去重

傳送門 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 ...

演算法訓練 素因子去重

演算法訓練 素因子去重 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 輸入格式 乙個整數,表示n 輸出格式 輸出一行,包含乙個整數p。樣例輸入 樣例輸出 資料規模和約定 n 10 12 樣例解釋 n...