今天做了一道比較簡單的題,但是思路很有意思(其實是被素因子這個概念卡了一會兒),所以就放了上來。
——————————————————————————————
資源限制
時間限制:1.0s 記憶體限制:256.0mb
問題描述
給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1
輸入格式
乙個整數,表示n
輸出格式
輸出一行,包含乙個整數p。
樣例輸入
1000
樣例輸出
10資料規模和約定
n<=10^12
樣例解釋:n=1000=2^353,p=25=10*
——————————————————————————————
思路分析:這道題本質上就是一條找因子的題,如果我們太過受制於素因子這個概念,就很有可能難以求解,比方說花很多時間進行素數打表,但實際上我們利用乙個while迴圈就能解決這個問題。來看**:
#include
#include
// 包含sqrt()開方函式
intmain()
} ans *
= n;
// 這一行也很重要,因為最後若n不為1,就一定是乙個素數
printf
("%lld\n"
, ans);}
}
藍橋杯 演算法訓練 素因子去重
問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 輸入格式 乙個整數,表示n 輸出格式 輸出一行,包含乙個整數p。樣例輸入 樣例輸出 資料規模和約定 n 10 12 樣例解釋 n 1000 2 3 5 3,p 2 5 10 題解 試除法.列舉素因子,...
藍橋杯 演算法訓練 素因子去重
問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 輸入格式 乙個整數,表示n 輸出格式 輸出一行,包含乙個整數p。解題思路 1.先求出小於10的6次方的所有素數,因為n至多只存在乙個大於sqrt n 的素因數。2.然後在這些素數中找出n的因數。求素數...
藍橋杯備賽 演算法訓練 素因子去重
問題描述 給定乙個正整數n,求乙個正整數p,滿足p僅包含n的所有素因子,且每個素因子的次數不大於1 輸入格式 乙個整數,表示n 輸出格式 輸出一行,包含乙個整數p。樣例輸入 1000 樣例輸出 10資料規模和約定 n 10 12 樣例解釋 n 1000 2 3 5 3,p 2 5 10 原題目這裡有...