藍橋杯備賽 演算法訓練 素因子去重

2021-09-11 18:53:24 字數 841 閱讀 6615

問題描述

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

輸入格式

乙個整數,表示n

輸出格式

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

樣例輸入

1000

樣例輸出

10資料規模和約定

n<=10^12

樣例解釋:n=1000=2^3 * 5 ^3,p=2*5=10(原題目這裡有點問題)

個人分析:

這個題算是乙個小水題,求出n的所有素因子,1不考慮了,從2開始 只要能整除 那麼我們用乙個while迴圈一直把這個倍數除盡為止 但是每個素因子出現次數<=1 所以我們p只乘以一次就行了

然後就有2中方式:

1,從2到根號n 但是這種情況要考慮2 3 5 7 可能n最後結果大於1 那麼最後的值也是乙個素因子 所以要有乙個判斷

2,從2到n 這樣不必考慮最後結果問題,但是這個複雜度需要考慮,雖然最後還是ac了,但還是有點方~

具體**如下:

ac

#include

using namespace std;

intmain()

}}if(n>1)

cout

}

#include

using namespace std;

intmain()

}}cout

}

學如逆水行舟,不進則退

藍橋杯 演算法訓練 素因子去重

問題描述 給定乙個正整數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 輸出格式 輸出一行,...

藍橋杯 演算法訓練 素因子去重

問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 輸入格式 乙個整數,表示n 輸出格式 輸出一行,包含乙個整數p。解題思路 1.先求出小於10的6次方的所有素數,因為n至多只存在乙個大於sqrt n 的素因數。2.然後在這些素數中找出n的因數。求素數...